apidays 2015 - the state of web api languages
TRANSCRIPT
The State of Web APILanguagesJerome Louvel, Chief Geek
@jlouvel
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
API consumer activities
DISCOVER DEVELOP USE
API Consumer
TRY OUT DEPLOY
team effect
End Users
API consumer tooling
HUB IDE ADN
API ConsumerEnd users
TRY OUT DEPLOY
team effect
Design IDE: Mulesoft API Designer
Design IDE: Apiary
Design IDE: Apigee Studio
Design IDE: Stoplight
Design IDE: Restlet Studio
Sample IDE: Restlet Studio
Sample IDE: Restlet Studio
● 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
Testing IDE: Paw
Testing IDE: Postman
Testing IDE: DHC by 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
Thank you
Q&A