QCon SF 2014 Create and Deploy APIs using Web IDEs, Open Source - - PowerPoint PPT Presentation

qcon sf 2014 create and deploy apis using web ides open
SMART_READER_LITE
LIVE PREVIEW

QCon SF 2014 Create and Deploy APIs using Web IDEs, Open Source - - PowerPoint PPT Presentation

QCon SF 2014 Create and Deploy APIs using Web IDEs, Open Source Frameworks and Cloud Platforms Presented by Jerome Louvel, Chief Geek New API Landscape Multiplicity of HCI modes Mobile and contextual Always-on and access to services


slide-1
SLIDE 1

QCon SF 2014 Create and Deploy APIs using Web IDEs, Open Source Frameworks and Cloud Platforms

Presented by Jerome Louvel, Chief Geek

slide-2
SLIDE 2

New API Landscape

API project Multiplicity of HCI modes Always-on and instantaneous services Mobile and contextual access to services Cross-channel user experiences Cloud computing (IaaS) Semantic web (hyperdata)

slide-3
SLIDE 3
  • New types of APIs

○ internal & external APIs ○ composite & micro APIs

experience & open APIs

  • Number of APIs increases

○ channels growth ○ history of versions ○ micro services pattern

quality of service

  • → Industrialization needed

○ new development workflows

Impacts on API development

Infrastructure APIs (IaaS) Platform APIs (PaaS) 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

slide-4
SLIDE 4

New API development workflows

  • API-driven approach benefits

○ a pivot API descriptor ○ server skeletons & mock generation ○ up-to-date client SDKs & docs

rapid API crafting & implementation

  • Code-first or API-first approaches

○ can be combined using ■ code introspectors to extract ■ code generators to resync

API source code API descriptor

introspect generate

API docs

generate generate

Client SDKs

slide-5
SLIDE 5

Crafting an API

  • Specialized API crafting tools

○ code editors ○ visual designers ○ generation of ■ contract ■ client SDKs ■ skeletons

  • New generation of tools

○ IDE-type ○ Web-based

slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
  • Browser-based IDE for API crafting

○ accelerate the design of APIs ○ Chrome extension ○ 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 & RAML initially)

Preview Launch

November 18th

Crafting an API with Restlet

slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14

Implementing an API

  • Implementation using a RESTful API framework

○ Benefits ■ less mental gap compared to MVC & RPC frameworks ■ higher level than raw HTTP libraries (Servlet, Netty) ■ easier to use HTTP protocol features ■

  • pen source (no lock-in)

○ Key features of an API framework ■ API descriptor/contract definition

  • in Java, typically uses annotations

■ both client and server side support ■ make it easy or transparent to use HTTP features ■ performance and scalability

HTTP / WebSocket transport HTTP semantics REST framework Custom web API

slide-15
SLIDE 15
  • JAX-RS centric

○ Oracle Jersey ○ JBoss RESTeasy ○ DropWizard ○ Apache Wink ○ Apache CXF

  • Alternative Java APIs

○ Restlet Framework ■ favor Restlet API ■ support JAX-RS API ○ REST.li ○ RESTx ○ REST Express

  • JavaScript

○ Express.js

API Frameworks Landscape

slide-16
SLIDE 16
  • All HTTP features supported

○ caching, content ranges & compression ○ content negotiation & conditional requests ○ confidentiality & authentication ○ all HTTP headers mapped to Java classes

  • What’s New in v2.3?

○ API introspector (Swagger, RAML, WADL) ○ API management (API firewall, APISpark integration) ○ @Status annotation (map Java exception & HTTP error) ○ CORS support (cross-origin access) ○ easier access to raw HTTP headers ○ upgrade to Jetty 9.2 with client-side support ○ compatible with Java 7, GWT 2.7, Android, GAE, Java EE, OSGi

Implementing an API with Restlet

Version 2.3.0 launch

November 18th

slide-17
SLIDE 17

Restlet-annotated Java interfaces

slide-18
SLIDE 18

JAX-RS and Restlet APIs | Server-Side

slide-19
SLIDE 19

JAX-RS and Restlet APIs | Client-Side

slide-20
SLIDE 20

Deploying an API

  • PaaS make it easier to deploy

○ less operational burden ○ cost and time effective to start then scale ○ more availability and lower latency ■ necessary for a global reach

  • Generic Infrastructure PaaS

○ hosting and auto-scaling ○ good density thanks to VMs ○ better density thanks to containers (Docker)

  • Specialized PaaS for APIs

○ add API management on top of the hosted API ○ integrate with Infrastructure PaaS ■ remote agent close to API or API wrapper

slide-21
SLIDE 21
  • Typical Benefits

○ documentation ○ access control ○ firewall ○ adaptation ○ monetization

analytics

  • APISpark Supports

○ APIs with large # of resources (sections) ○ skeleton and SDK generation ○ integration with Restlet Framework

General Availability

November 18th

Managing an API

slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25

Conclusion

  • APIs enable new abstracting layers

○ IaaS became a game changer thanks to APIs ■ S3, EC2, Route53, etc. ○ PaaS is the next game changer ■ thanks to APIs as well!

slide-26
SLIDE 26

Thank you