web apis in action (in french)

53
WEB APIS IN ACTION SFEIR – 17 octobre 2012

Upload: restlet

Post on 18-Jun-2015

804 views

Category:

Technology


2 download

DESCRIPTION

"Restlet in Action" book launch event. 10/17/2012. Jérôme Louvel.

TRANSCRIPT

Page 1: Web APIs in Action (in French)

WEB APIS IN ACTION SFEIR – 17 octobre 2012

Page 2: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

INTERVENANT ENTREPRENEUR ET EXPERT EN APIS WEB

Jérôme LOUVEL – Ingénieur PolyTech’Montpellier

– 12 ans d’expérience dans l’édition logicielle et le service informatique, dont 3 ans aux USA

– CEO de Restlet et créateur de Restlet Framework

– Expert JAX-RS 1.0 (JSR-311)

– Contributeur à “RESTful Web Services” (O’Reilly)

– Co-auteur de “Restlet in Action” (Manning)

Contact: – [email protected]

– Twitter : @jlouvel et Google+

– Blog : blog.restlet.com

Page 3: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

AGENDA

1. Tour d’horizon des APIs web (10 mn)

2. De REST aux APIs web (5 mn)

3. Introduction à Restlet Framework (5 mn)

4. API Restlet vs API JAX-RS (10 mn)

5. Prochaines étapes du projet (5 mn)

6. APISpark, Restlet as a Service (5 mn)

• Durée totale : 45 mn

Page 4: Web APIs in Action (in French)

TOUR D’HORIZON DES APIS WEB Partie 1/6

Page 5: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

LE WEB AUJOURD’HUI MOBILE + CROSS-MACHINE

API

Utilisateurs d’Internet : 2,3 milliards Objets connectés : 10 milliards

Besoin d’échange d’info

Nouvelle génération de sites web Accessible par toute machine

Web APIs !

API

TV connectée

Ordinateur

Smartphone

Tablette

Applis sociales

Partenaires

Page 6: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

L’API WEB ÇA SE CONSOMME

• Enrichir un site web (mashups, flux blog/tweets, Google Maps)

• Import/Export SaaS (libérer ses données, changer de fournisseur)

• Intégration SaaS (notifier / web hooks, automatiser / workflow)

• APIs composites (combiner plusieurs APIs en une autre, SIRI)

6

Page 7: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

L’API WEB ÇA PERMET D’EXPOSER

• Backend Mobile (connectées, natives ou HTML 5)

• Backend SaaS (HTML 5/AJAX, API développeur/partenaire)

• Backend Open Data (multi-formats, API développeur, big data)

• Backend Internet des Objets (M2M, RFID, géolocalisation)

7

Page 8: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

TWITTER ET LES APIS WEB

REST API

Database

Streaming API

Search API

Web Site iPhone Third-party

Page 9: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

TWILIO, L’API WEB EST LE PRODUIT

9

Page 10: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

GOOGLE MAPS IMAGE API

10

http://maps.googleapis.com/maps/api/staticmap?

center=Brooklyn+Bridge,New+York,NY&

zoom=14&

size=512x512&

maptype=roadmap&

markers=color:blue%7Clabel:S%7C40.702147,-74.015794&

markers=color:green%7Clabel:G%7C40.711614,-74.012318&

markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-

73.998284&

sensor=false

• Représentation « image/png » de la ressource de carte

• Une ressource REST peut exposer des représentations

binaires

Page 11: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

AMAZON ET LES APIS WEB

11

• Authentification exotique

• Anti-pattern d’API RESTful

• Mais AWS reste une référence dans le cloud !

Page 12: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

NOMBRE D’APIS PUBLIQUES EN PLEINE CROISSANCE !

Source: ProgrammableWeb

1 million d’APIs en 2017 !

Page 13: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

LE PLUS IMPRESSIONNANT EST CACHÉ L’ICEBERG DES APIS PRIVÉES!

Source: ProgrammableWeb

Page 14: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

NOMBRE DE SITES WEB UN PARALLÈLE QUI LAISSE RÊVEUR !

Source: NetCraft / Jacob Nielsen

APIs web

publiques

Page 15: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

DE NOUVEAUX ACTEURS

15

• Frameworks RESTful

• Génération de doc

• Frameworks NIO/HTTP

• Backends as a Service

• Applis mobiles

• SaaS & sites riches

• Open data

• Internet des Objets

• Sécurisation

• Analytics

• SDKs clients

• Gestion communauté

• Annuaire

• Monétisation

• Animation

• Référencement

• Oracle Jersey

• JBoss RESTEasy

• XINS, Swagger

• Enunciate

• Restlet Framework

• StackMob

• Parse.com

• Sencha.io

• Firebase

• APISpark

• Apigee

• Mashery

• 3Scale

• WebServius

• APISpark

• ProgrammableWeb

• Mashape

• Alcatel Open API Platform

• The Easy API

• APISpark

Page 16: Web APIs in Action (in French)

DE REST AUX APIS WEB Partie 2/6

Page 17: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

REST AU CŒUR DES APIS WEB MAIS RAREMENT DU PUR REST…

Source: ProgrammableWeb

• REST est souvent synonyme de non-SOAP…

• L’hypermédia est rarement exploité…

• JSON s’imposent de plus en plus souvent

• Exigence de qualité croissante : REST comme guide

Page 18: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

« WEAVING THE WEB » VISION D’ORIGINE ET ÉVOLUTION DE HTTP

HTTP/1.0

HTTP/1.1

REST

HTTP/0.9 1991

1996 RFC 1945

1999 RFC 2616

2000

HTTP/1.1 bis 2013 ? IETF draft

W3C Notes

Dissertation

HTTP/2.0 IETF proposal ?

Vision original du Web (source: TBL)

• Internet

• Document

• Hypertexte

• Lecture et écriture

Page 19: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

Internet

TCP/IP

HTTP, REST

Web 1.0 (Documents)

Web 2.0

(Social)

Web 3.0 (Semantic)

Cloud computing (IaaS, PaaS,

SaaS)

Mobile web (App natives,

HTML 5)

Web of things

(Machines)

UN WEB EN CONSTANTE ÉVOLUTION + 20 ANS D’INNOVATION

Page 20: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

UNE HISTOIRE DE PARADIGMES LA RÉCONCILIATION?

RPC

Services Web (SOAP, *-RPC)

REST

résistance

APIs Web

Web des documents

Web des machines

convergence

1. Architecture distribuée (TCP)

2. Identification universelle (URI)

3. Interface uniforme (HTTP)

4. Hypermédia (HTML, RDF)

5. Couplage faible C/S

1. Connectivité limitée (mobilité)

2. Nouvelles IHMs (apps, objets)

3. Interactions cross-machine

4. Automatisation (M2M)

5. Couplage moyen C/S

1. Architecture distribuée

2. Automatisation (programmes)

3. Interface

4. Couplage fort C/S

Page 21: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

APIS WEB UNE ÉVOLUTION DE REST

Principes communs 1.Architecture distribuée (TCP) 2.Identification universelle (URI) 3.Interface uniforme (HTTP)

Différences significatives 1.IHMs hétérogènes

• Taille d’écran (cinéma, TV, moniteur, ligne LCD, etc.) • Modes d’interaction (clavier/souris, télécommande, etc.) • Connectivité (permanente, intermittente, rare, aucune) • Automatisation (M2M, agents, capteurs, SaaS 2 SaaS, etc.)

2.Couplage moyen C/S • JSON, XML, YAML, CSV : formats d’échange de données seulement • Connaissances préalable côté client plus fortes, besoin de stabilité

REST

Page 22: Web APIs in Action (in French)

INTRODUCTION À RESTLET FRAMEWORK

Partie 3/6

Page 23: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET FRAMEWORK PROJET OPEN SOURCE CRÉÉ EN 2005

A N D R O I D G A E G W T J A V A E E J A V A S E

Langage Java

O S G I

Editions multiples

Génération semi-auto.

Framework pour exposer et consommer

des APIs web de style REST

Page 24: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

DE NOMBREUSES RÉFÉRENCES PLUS DE 50 000 UTILISATEURS

Page 25: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

MULTI-PROTOCOLES MAIS, CENTRÉ SUR HTTP!

Semantics

Messaging

Payload

Conditional requests

Ranged requests

Caching Authentication

Restlet

API

Restlet

Engine

Connecteurs:

• HTTP

• AJP

• FTP

• RIAP

• CLAP

• FILE

• POP3

• SMTP

• JDBC

• SIP

Page 26: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

MULTI-CLOUD AUGMENTEZ LA PORTABILITÉ DE VOS APIS ET APPLIS WEB

Page 27: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

COMPÉTITION PLUSIEURS VISIONS DU WEB…

HTTP toolkits

WS-* frameworks

OO web frameworks

MVC web frameworks

RESTful web frameworks

Wicket, Tapestry

Axis, CXF, XINS

Spring MVC, Play!

Servlet, Apache HTTP Client, Netty, etc.

Restlet, Jersey, RESTeasy

Page 28: Web APIs in Action (in French)

API RESTLET VS API JAX-RS Partie 4/6

Page 29: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

PACKAGES DE L’API RESTLET UN CŒUR COMPLET MAIS COMPACT

org.restlet.data

org.restlet.representation

org.restlet

org.restlet.resource

org.restlet.routing

org.restlet.security

org.restlet.service

org.restlet.util

Page 30: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

UNE API JAVA COMPLÈTE USAGE EN BIBLIOTHÈQUE OU EN FRAMEWORK

Page 31: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

FILTRAGE ET ROUTAGE MULTI-THREAD ET DYNAMIQUE

Next Restlet

Filter

B

C

A

Router

B

C

A

Route 1

Route 2

Route 3

A

B

C

Page 32: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

INTERFACES ANNOTÉES APPROCHE UNIFORME, CLIENT & SERVEUR

HTTP

Annotated

Java interface

REST API

Client

resource Server

resource

Client

proxy Server

subclass

Page 33: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

SERVICE DE CONVERSION EXTENSIBLE, SCORING, BEANS DE REPRÉSENTATION

Resource

XML

HTML

JSON

State Representation

bean

Form Data

RDF

Atom

Converter

service

Page 34: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET API 1.1 VS JAX-RS 1.0

Page 35: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET API 2.0 VS JAX-RS 1.1

Page 36: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET API 2.1 VS JAX-RS 2.0

Page 37: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

COMPARAISON APIS JAVA 1/2

Caractéristique API Restlet 2.1 API JAX-RS 2.0

Style d’API Java Centré Ressource et héritage

Centré POJO et annotations

Nombre d’annotations 5 24

Entêtes HTTP supportées 50 26

Version minimum Java SE 5.0 Java SE 6.0

Alignement HTTP et REST Complet Partiel

Sécurité Oui Non

Routage (filtres et routeurs) Oui Limité

Composants et connecteurs Oui Non

Fichiers statiques Oui Non

Page 38: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

COMPARAISON APIS JAVA 2/2

Caractéristique API Restlet 2.1 API JAX-RS 2.0

Reverse proxy Oui Non

Représentations asynchrones Oui Non

Streaming HTTP Complet Limité

Réponses provisionnelles Oui Non

Standard JCP Non Oui

Ecosystème Ouvert (Google, AWS, Oracle, IBM, MS, etc.)

JCP (Oracle, RedHat, OW2, etc.)

Ancienneté 7 ans 5 ans

Innovation Rapide Lente

Page 39: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

DES STYLES DE CODAGE DIFFÉRENTS 1/2 SHOW ME THE CODE!

JAX-RS API 2.0 // Get instance of Client

Client client =

ClientFactory.newClient();

// Get account balance

String bal =

client.target("http://.../atm/{cardI

d}/balance")

.pathParam("cardId", "112233")

.queryParam("pin", "9876")

.request("text/plain").get(String.cl

ass);

Restlet API 2.1 // Get instance of Client

ClientResource client = new

ClientResource(""http://.../atm/{cardId}

/balance");

// Get account balance

client.setPathValue("cardId", "112233");

client.setQueryValue("pin", "9876");

client.accept(MediaType.TXT_PLAIN);

String bal = client.get(String.class);

Page 40: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

DES STYLES DE CODAGE DIFFÉRENTS 2/2 SHOW ME THE CODE!

JAX-RS API 2.0

@POST

@Path(“withdrawal")

@Consumes("text/plain")

@Produces("application/json")

public Money withdraw(

@PathParam("card") String card,

@QueryParam("pin") String pin,

String amount){

return getMoney(card,

pin, amount);

}

Restlet API 2.1

@Post(“txt:json”)

public Money withdraw(){

String card = getPathValue(“card”);

String pin = getQueryValue(“pin”);

String amount = getQueryValue(“amount”);

return getMoney(card, pin, amount);

}

Page 41: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

PLUS QU’UNE API JAVA C’EST LE FRAMEWORK QUI COMPTE!

Page 42: Web APIs in Action (in French)

PROCHAINES ÉTAPES DU PROJET Partie 5/6

Page 43: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET FRAMEWORK 2.1 (1/2) 2 ANS DE DÉVELOPPEMENTS !

• Améliorations incrémentales de l’API Restlet – Pas mal de sucre syntaxique (getQuery, getPath, etc.) – Amélioration annotations. Example: @Get("form|xml:json?level=2") – Traçage des requêtes individuel facilité – ConnegService, DecoderService côté client – Gestion côté client de l’absence de chunk encoding dans GAE – Extension EMF (converter XMI/XML), HTML (multi-part upload)

• Sécurité des APIs web renforcée – Support des schémas AWS S3, AWS Query, Cookie et GAE – Support de Google Secure Data Connector (SDC) hors GAE – Nouvelles extensions OAuth 2.0 et OpenID 2.0 (draft specs)

• Nouveau connecteur HTTP interne – Design NIO non-bloquant, peu de threads – Zéro dépendance, centré HTTP/Restlet, lecture représ. asynchrone – Dépréciation des extensions Grizzly et Netty – Documenté et extensible (extension SIP)

Page 44: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET FRAMEWORK 2.1 (2/2) SORTIE EN SEPTEMBRE 2012

• Livre « Restlet in Action » – Version papier synchro avec la version 2.1.0

• Option « Apache Public License 2.0 » – En plus d’EPL 1.0, LGPL 2.1/3.0 et CDDL 1.0 – Licences commerciales possible si nécessaire

• Migration vers GitHub – Historique SVN avec branches importé – Tickets Tigris.org importés – Forge Restlet automatisée mise à jour – Augmentation des contributions constatée !

• Migration vers StackOverFlow – Déjà largement utilisé pour les questions simples et bogues – Augmenter la qualité des échanges dans le groupe sur Google en retour

Page 45: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

RESTLET FRAMEWORK 2.2 CYCLE COURT (1 AN)

• Nouveau site web – Basé sur Twitter Bootstrap et GitHub Pages – Migration du wiki de Daisy vers Javadocs et GitHub Wiki – Nouveau tutoriel

• Migration vers Google Groups

– Listes de diffusion utilisateurs et développeurs encore sur Tigris.org

• Migration vers Java SE 6 – Java SE 5 supporté depuis Restlet Framework 1.0 ! – Réduire la taille du code (ex: service pattern)

• Améliorations incrémentales – Optimiser la taille des éditions Android et GWT – CacheService : générique et extensible – OAuth 2.0 : support de la spec. finale

Page 46: Web APIs in Action (in French)

APISPARK, RESTLET AS A SERVICE Partie 6/6

Page 47: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

FONCTIONNALITÉS 1/2

La plate-forme tout-en-un pour APIs web

• Créer votre API web rapidement – En 5 minutes à partir d’un modèle existant (API blog) – En quelques heures à partir de rien ou par personnalisation d’un modèle

existant (annuaire d’APIs web disponible) – Pas de verrou grâce à une fondation open source (Restlet Framework) et un

export du code de votre API web possible

• Hébergement intégré – Backend scalable et réactif (faible latence, gestion intégrée) – Disponibilité permanente 24/24h et 7/7j (pas de fenêtre de maintenance) et

sécurisé (confidentialité par SSL, gestion précise des autorisations)

• Versions automatiques – Gérez plusieurs versions de la même API web en parallèle, sans aucun surcoût – Pas de risque d’aliéner vos utilisateurs actuels tout en vous laissant libre de

faire évoluer votre API web – Cycle de vie clair (états: brouillon, publié, déprécié, archivé, supprimé)

Page 48: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

La plate-forme tout-en-un pour APIs web

• Documentation automatisée – Toujours à jour grâce à une saisie optimisée – Accès web avec tests en live intégré – Export en PDF et HTML facile

• Génération de kits clients – Facilitez l’utilisation de votre API par différents types d’utilisateurs – Support des plate-formes les plus populaires (iPhone/iPad, Android, Java,

.NET, PHP, Python)

• Gestion de la communauté – Gestion des utilisateurs et de leur demande d’adhésion intégrée – Communautés publiques ou privées – Envoi de messages d’annonces publics ou de messages privés – Intégration avec les réseaux sociaux

FONCTIONNALITÉS 2/2

Page 49: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

CONSOLE APISPARK CATALOGUE D’APIS & DATA STORES

Page 50: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

CONSOLE APISPARK TABLEAU DE BORD

Page 51: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

CONSOLE APISPARK CONCEPTION D’API

Page 52: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

CONSOLE APISPARK ANALYSE D’APIS

Page 53: Web APIs in Action (in French)

Copyright Restlet SAS – Tous droits réservés

• Beta privée: en cours depuis mai 2012

• Beta publique: novembre 2012

• Version 1.0: mai 2013

• Inscrivez-vous !

http://apispark.com

ROADMAP

MERCI !