The document discusses the state of web API languages. It notes that there are now many new types of APIs due to factors like mobile access and cloud computing. This has led to an increase in the number of APIs and versions. The document also discusses the top programming languages, with Java and PHP being popular application languages, while newer languages like RAML, Swagger and API Blueprint are emerging for describing web APIs. It analyzes the maturity of these API languages and tools. Finally, it presents new API development workflows and tools that use API descriptions to generate documentation and code.
The State of Web API Languages in 2014: Swagger, RAML and the Rise of API-First Development
1. The State of Web API
Languages
Presented by Jerome Louvel, Chief Geek
2. New API Landscape
Multiplicity of
HCI modes
API
project
Always-on and
instantaneous services
Mobile and contextual
access to services
Cross-channel user
experiences
Cloud computing & hybrid
architectures
Web of data
(semantic)
3. Impacts on API development
● New types of APIs
o internal & external APIs
o composite & micro APIs
o experience & open APIs
● Number of APIs increases
o channels growth
o history of versions
o micro services pattern
o quality of service
● → Industrialization needed
o new development workflows
o importance of API languages
User Interfaces
(frontends)
Experience APIs
Composite APIs
(domain services)
Platform APIs
(PaaS)
(backends)
Partner devs
Infrastructure APIs
(IaaS)
Micro APIs
(domain data & logic)
Open APIs
(public)
End-users
Micro APIs
(external SaaS)
4. Top programming languages
● 50% of classic
languages at the top
● Cobol and Assembly
are still in the top 30
● New languages
rising quickly
(Swift, Dart)
● An API language in
this list soon ?
Source: TIOBE index
5. Languages are Abstraction Layers
Hardware
Assembly languages
System languages
Application languages
Web API languages
lowest level, machine instructions
x86 / CISC / RISC / etc.
software level, drivers
NASM / TASM
OS level, high performance
C / C++ / C# / Go
productivity, portability, business logic
Java / PHP / Visual Basic
web scale, interoperability, integration
RAML / Swagger / API Blueprint
6. Maturity levels of API Languages
● 1) Describe Web API contract
o endpoints, resources, HTTP methods, representations
o enable the generation of:
client SDKs
server skeletons
test suites
mock servers
● 2) Implement Web APIs
o wrap regular applications written with classic languages
o compose lower-level APIs into higher-level APIs
o integration purpose at web scale
● 3) Consume Web APIs
o to build composite APIs
to build user interfaces or enable connected devices
Lower level
languages
Lower level
languages
7. What changed in 2014?
● Swagger 2.0
o announced at GlueCon in May
by Tony Tam from Reverb
along with Swagger Editor
o formal JSON schema defined
o preview specification released in September
o tooling still being upgraded
o leader in term of community adoption
● RAML & API Blueprint
o maturing projects with more adoption and contributions
o new generation targets such as Postman collections
o opening beyond their initial sponsor (Mulesoft and Apiary)
o will they be able to catch up with Swagger?
● Tooling quickly maturing
8. New API development workflows
● API-driven approach benefits
o a pivot API descriptor
o server skeletons & mock generation
o up-to-date client SDKs & docs
o rapid API crafting & implementation
● Code-first or API-first approaches
o can be combined using
code introspectors to extract
code generators to resync
API source code
introspect generate
API descriptor
generate generate
API
docs
Client
SDKs
9. Crafting an API
● Specialized API crafting tools
o code editors
o visual designers
o generation of
contract
client SDKs
skeletons
● New generation of tools
o IDE-type
o Web-based
● What’s missing?
o collaborative edition (GDoc style)
o writing API implementations
business logic
import of other APIs
10.
11.
12.
13.
14. ● Browser-based IDE for API crafting
o accelerate the design of APIs
o Chrome application
o compatible with other modern browsers
● Supports
o visual design of APIs
o source code views
o APIs with large # of resources (sections)
o skeleton and SDK generation
o adherence to REST
o multiple API languages
Swagger & RAML initially
API Blueprint planned
first tool of this kind
http://studio.restlet.com
Launching at
APIdays 2014!
Crafting an API with Restlet
15.
16.
17.
18. Conclusion
● APIs enable new layers of abstraction
● In the Cloud Stack
○ IaaS became a game changer thanks to APIs
■ S3, EC2, Route53, etc.
■ moving up the value chain
○ PaaS is the next game changer in cloud
■ Docker containers provide one key block
■ APIs will play a strategic role again
○ Web APIs power all those layers
● In the Development Stack
○ new generation of languages
○ API-first approach emerge
○ replacing Code-first bottom-up approaches
○ still some key missing pieces in API languages
○ stay tuned for 2015 !