apidays 2015 - the state of web api languages
TRANSCRIPT
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
Major API use cases
IoTDevices
Conn-ectors
Open Data
Web Apps
Desktop Apps
Partner Apps
Mobile Apps
Open APIs
APIs
APIs
APIs
APIs
APIs
APIs
APIs
APIs
DigitalApplications
● 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
1 | Code-first & Back-end Driven
Back-end team
Front-end teams
API
Impl
SDK
ClientA
SDK
ClientB
...
...3
1
2
2 | API-first & Back-end Driven
Back-end team
Front-end teams
Impl
SDK
ClientA
SDK
ClientB
...
...2
1Mock
2
API
3 | Collaborative API-first
Back-end team
Front-end teams
Impl
SDK
ClientA
SDK
ClientB
...
...2
1Mock
2
API
4 | API-first & Front-end Driven
Back-end team
Front-end teams
Impl
SDK
ClientA
SDK
ClientB
...
...2
1Mock
2
APIMockAPI
Impl
MockAPI
Impl
ServicesData
5 | API-first & Front-end Owned
Back-end team
Front-end teams
Impl
SDK
ClientA
SDK
ClientB
...
...2
1Mock
2
APIMockAPI
Impl
MockAPI
Impl
Data Services
● 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 levellanguages
API delivery network
● 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?
Languages are Abstraction Layers
Hardware
Assembly languages
System languages
Application languages
Web API languages
software level, driversNASM / TASM
OS level, high performanceC / C++ / C# / Go
productivity, portability, business logicJava / PHP / Visual Basic
web scale, interoperability, integration, DSLsSwagger / RAML / API Blueprint
lowest level, machine codex86 / CISC / RISC / etc.1st generation
2nd generation
3rd generation
4th generation
3rd generation
● 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
API provider activities
DEVELOP OPERATE PROMOTE
API ProviderAPI Consumers
DEPLOY PUBLISH
team effect
try out / compose
API provider tooling
IDE ADN HUB
API ProviderAPI Consumers
DEPLOY PUBLISH
team effect
try out / compose
IDE: API Integrated Deveqlopment EnvironmentADN: API Delivery NetworkHUB: Collaborative API Portal
● 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
● 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