towards an api commons
DESCRIPTION
Keynote presentation http://www.defragcon.com - proposing API Commons http://apicommons.org/. Kin Lane and Steven WillmottTRANSCRIPT
Towards an API CommonsKin Lane and Steven Willmott
Who We Are...
http://www.3scale.net/
http://www.apevangelist.com/
No Legal Guarantees...
API Growth...
APIs are Awesome
Data
Control
Commerce
Sensors
Mobile
Internal
The Number of APIs will explodeAlso Awesome!
But there is a problem...
A huge amount of client code is going to have to be written
But we know how to solve this right?...
Did
n’t
wor
k ou
t so
wel
l la
st t
ime
arou
nd..
Will
Tak
e A
Lon
g tim
e to
W
ork
Automation: Code Generation
Intelligent Clients: e.g. Hypermedia
And there is at least one other problem: copyright
API Copyright
• Legal Grey Area
• Hundreds of thousands of APIs means a lot of overlap
• Risk in Re-use
• No attribution and a lot of unhappiness
Very Messy Hundreds of Thousands / Millions of APIs with similar definitions, all needing client code and
potential copyright claims in the mix
So What If
API Definitions were actually explicitly open and shareable instead?
Why Not...
Borrow from the Creative Commons and Open Source?
API Commons
http://apicommons.org
The Idea
• Enable (and Encourage) people to openly declare API Interface definitions to be under Reusable
• Enable discovery, sharing and forking
• Apply to API Definitions and Data Models (not implementations)
Example
•Facilities API
•Own the definition
•Explicitly make it Sharable
•Others can Reuse
•Others can Extend
•Client code can be shared
•So can the server code
API Definition
Example
SwaggerWADLWSDLRAML
...
AP1 1
AP1 2
AP1 3
RubyPHP
Objective C
Single InterfaceMultiple
Implementations
ExampleAPI Definition
SwaggerWADLWSDLRAMLJSON Schemaetc..
}Copyright Free
Others can Reuse,Implement ServersImplement ClientsImprove and Remix
Benefits to API Designer
• Get broader adoption
• Get more shared tooling
• Feedback & Input
• Community Driven Standardisation
• Kudos Just Like OpenSource
Benefits of using APIS from the Commons
• Save work
• Clear copyright footing
• Increase the likelyhood of clients being available
• Help improve something existing
• Many Eyeballs ...: Just Like OpenSource
First Cut Solution• http://apicommons.org
Properties
• Bottom Up: Just put a manifest somewhere (no “control”)
• Format agnostic
• On platforms like Github, it’s Forkable
• Uses established licenses (Creative Commons)
Licensing
• Highly Recommend: Creative Commons Attribution
(Permit Unrestricted Commercial Use)
But How do you Start?
• 10 APIs in as examples
• More to come
• Mostly public sector <- makes most sense
• Accumulate commercial ones as we go
• Encourage use of Existing Data Models
apicommons.org
• Aiming to index commons APIs
• Place to stimulate discussion and best practice
• No commercial interest
• No reason for this to be the only hub
Why Do This?
http://apicommons.org
Will people do this?
• Is it valuable enough?
• What about commercial conflicts?
• How will it be bootstrapped?
Value for APIs as a Whole
• Huge: In fact - APIs are probably not viable as a technology without it!
• Reduce the amount of client code by orders of magnitude
• We will end up with fewer better API interfaces and more APIs
Why does this matter?
0
12500000
25000000
37500000
50000000
10000 100000 1000000 10000000
No SharingShared InterfacesSemantic Technology
Assume 5 clients per API, Assume factor of 10 shared API defs over time
Open Data?
• Seems to be the logical place to start
• There is no incentive to have different models for the same data!
• No commercial barriers
Commercial Use
• Some API Designs are Competitive Advantage
• In some cases shared standards would be better
• Parallels to the evolution of Open Source
Why Not OS?
• There have been copyright lawsuits so descriptions are at least subject to copyright
• Descriptions are generally not executable by themselves
• Maybe Open Source licenses are needed in the future too
Why not just Creative Commons?
• Creative Commons is great
• But we need more structure and guidance
• We also need to be able to discover APIs in the commons easily
• We need to evaluate if creative commons is the right model
What Now?
http://apicommons.org
Challenges
• Technical
• Understanding
• Adoption
• Business Models
Adoption
• No doubt it will take time
• It doesn’t make sense for everybody today
• Over time though it’ll become a popular choice
Thank You!
• http://apicommons.org
• Group: https://groups.google.com/forum/#!forum/api-commons
• Twitter: @apicommons
• Photo Credits:
• Ryusuke Komori / 500px
• Milan Cherian / 500px