1. The State of Web API
Languages
Jerome Louvel, Chief Geek
@jlouvel
2. About me
● Launched Restlet Framework, first REST framework in 2005
● Contributor to “RESTful Web Services” (O’Reilly, 2007)
● Member of the JAX-RS 1.0 expert group (2007 - 2009)
● Co-author of “Restlet in Action” (Manning, 2012)
● InfoQ editor covering Web APIs since 2014
● CTO & Founder of Restlet, Web API platform vendor
3. Major API use cases
IoT
Devices
Conn-
ectors
Open
Data
Web
Apps
Desktop
Apps
Partner
Apps
Mobile
Apps
Open
APIs
APIs
APIs
APIs
APIs
APIs
APIs
APIs
APIs
Digital
Applications
4. ● New types of APIs
○ internal & external APIs
○ composite & micro APIs
○ experience & open APIs
● Number of APIs increases
○ channels growth
○ history of versions
○ microservices pattern
○ quality of service
● → Industrialization needed
○ new development workflows
○ importance of API languages
○ new tooling
Impacts on API development
API Platform
Micro APIs
(domain data & logic)
Composite APIs
(domain services)
Experience APIs
(backends)
User Interfaces
(frontends)
Open APIs
(public)
End-users
Micro APIs
(external SaaS)
Partner devs
5. 1 | Code-first & Back-end Driven
Back-end team
Front-end teams
API
Impl
SDK
Client
A
SDK
Client
B
...
...
3
1
2
6. 2 | API-first & Back-end Driven
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
7. 3 | Collaborative API-first
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
8. 4 | API-first & Front-end Driven
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
Mock
API
Impl
Mock
API
Impl
ServicesData
9. 5 | API-first & Front-end Owned
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
Mock
API
Impl
Mock
API
Impl
Data Services
10. ● 1) Describe API contract
○ endpoints, resources, HTTP methods, representations
○ enable the generation of:
■ client SDKs
■ server skeletons
■ test suites
■ mock servers
● 2) Implement API
○ wrap regular applications written with classic languages
○ compose lower-level APIs into higher-level APIs
○ integration purpose at web scale
● 3) Operate API
○ provide the infrastructure to deliver the API
○ access to data and services
Maturity levels of API Languages
Lower level
languages
API delivery
network
11. ● Swagger (2.0)
○ acquisition by SmartBear from Reverb
○ tooling has been upgraded
○ leader in term of community adoption
○ specification contributed to Linux Foundation
● RAML (1.0 RC)
○ added libraries, overlays, improved examples,
security schemas, annotations, and data-typing
● API Blueprint (1A9)
○ support for MSON and URI template added
● Will all three languages be able to converge?
What changed in 2015?
12. Languages are Abstraction Layers
Hardware
Assembly languages
System languages
Application languages
Web API languages
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, DSLs
Swagger / RAML / API Blueprint
lowest level, machine code
x86 / CISC / RISC / etc.
1st generation
2nd generation
3rd generation
4th generation
3rd generation
13. ● 50% of classic
languages at the top
● Java rising to 1st place
on its 20 years
anniversary.
● Cobol and Assembly in
the top 20 and rising
● New languages
emerging (Swift, Dart,
Go)
● An API language in
this list?
Source: TIOBE index
Top programming languages 2015
15. API provider tooling
IDE ADN HUB
API Provider
API Consumers
DEPLOY PUBLISH
team effect
try out / compose
IDE: API Integrated Deveqlopment Environment
ADN: API Delivery Network
HUB: Collaborative API Portal
25. ● Browser-based IDE
○ accelerate the design of APIs
○ Chrome application
○ compatible with other modern browsers
● Supports
○ visual design of APIs
○ source code views
○ APIs with large # of resources (sections)
○ skeleton and SDK generation
○ adherence to REST
○ multiple API languages
■ Swagger 1.2, 2.0 & RAML 0.8
■ RAML 1.0 & API Blueprint planned
■ first tool of this kind
http://studio.restlet.com
Design APIs with Restlet
29. ● 1 | API language convergence
○ move innovation to another level
○ accelerate tooling ecosystem
● 2 | API implementation
○ API coding & assembly
○ need full IDEs for APIs
● 3 | API delivery
○ low latency
○ high availability
○ elastic scalability
○ pervasive security
○ specialized API PaaS
→ A whole new API Stack is emerging!
Our API challenges