apidays 2015 - the state of web api languages

30
The State of Web API Languages Jerome Louvel, Chief Geek @jlouvel

Upload: restlet

Post on 14-Jan-2017

2.853 views

Category:

Internet


0 download

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