The State of Web API
Languages
Jerome 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
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
● 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
Client
A
SDK
Client
B
...
...
3
1
2
2 | API-first & Back-end Driven
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
3 | Collaborative API-first
Back-end team
Front-end teams
Impl
SDK
Client
A
SDK
Client
B
...
...
2
1
Mock
2
API
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
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
● 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
● 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, 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
● 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 Provider
API Consumers
DEPLOY PUBLISH
team effect
try out / compose
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
API consumer activities
DISCOVER DEVELOP USE
API Consumer
TRY OUT DEPLOY
team effect
End Users
API consumer tooling
HUB IDE ADN
API Consumer
End 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: DHCby 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

APIdays 2015 - The State of Web API Languages

  • 1.
    The State ofWeb API Languages Jerome Louvel, Chief Geek @jlouvel
  • 2.
    About me ● LaunchedRestlet 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 usecases 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 typesof 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 | CollaborativeAPI-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) DescribeAPI 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 AbstractionLayers 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% ofclassic 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
  • 14.
    API provider activities DEVELOPOPERATE PROMOTE API Provider API Consumers DEPLOY PUBLISH team effect try out / compose
  • 15.
    API provider tooling IDEADN 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
  • 16.
    API consumer activities DISCOVERDEVELOP USE API Consumer TRY OUT DEPLOY team effect End Users
  • 17.
    API consumer tooling HUBIDE ADN API Consumer End users TRY OUT DEPLOY team effect
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 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
  • 26.
  • 27.
  • 28.
  • 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
  • 30.