Date post: | 18-Jun-2015 |
Category: |
Technology |
Upload: | restlet |
View: | 804 times |
Download: | 2 times |
WEB APIS IN ACTION SFEIR – 17 octobre 2012
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
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
TOUR D’HORIZON DES APIS WEB Partie 1/6
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
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
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
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
Copyright Restlet SAS – Tous droits réservés
TWILIO, L’API WEB EST LE PRODUIT
9
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
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 !
Copyright Restlet SAS – Tous droits réservés
NOMBRE D’APIS PUBLIQUES EN PLEINE CROISSANCE !
Source: ProgrammableWeb
1 million d’APIs en 2017 !
Copyright Restlet SAS – Tous droits réservés
LE PLUS IMPRESSIONNANT EST CACHÉ L’ICEBERG DES APIS PRIVÉES!
Source: ProgrammableWeb
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
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
DE REST AUX APIS WEB Partie 2/6
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
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
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
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
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
INTRODUCTION À RESTLET FRAMEWORK
Partie 3/6
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
Copyright Restlet SAS – Tous droits réservés
DE NOMBREUSES RÉFÉRENCES PLUS DE 50 000 UTILISATEURS
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
Copyright Restlet SAS – Tous droits réservés
MULTI-CLOUD AUGMENTEZ LA PORTABILITÉ DE VOS APIS ET APPLIS WEB
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
API RESTLET VS API JAX-RS Partie 4/6
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
Copyright Restlet SAS – Tous droits réservés
UNE API JAVA COMPLÈTE USAGE EN BIBLIOTHÈQUE OU EN FRAMEWORK
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
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
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
Copyright Restlet SAS – Tous droits réservés
RESTLET API 1.1 VS JAX-RS 1.0
Copyright Restlet SAS – Tous droits réservés
RESTLET API 2.0 VS JAX-RS 1.1
Copyright Restlet SAS – Tous droits réservés
RESTLET API 2.1 VS JAX-RS 2.0
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
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
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);
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);
}
Copyright Restlet SAS – Tous droits réservés
PLUS QU’UNE API JAVA C’EST LE FRAMEWORK QUI COMPTE!
PROCHAINES ÉTAPES DU PROJET Partie 5/6
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)
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
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
APISPARK, RESTLET AS A SERVICE Partie 6/6
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é)
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
Copyright Restlet SAS – Tous droits réservés
CONSOLE APISPARK CATALOGUE D’APIS & DATA STORES
Copyright Restlet SAS – Tous droits réservés
CONSOLE APISPARK TABLEAU DE BORD
Copyright Restlet SAS – Tous droits réservés
CONSOLE APISPARK CONCEPTION D’API
Copyright Restlet SAS – Tous droits réservés
CONSOLE APISPARK ANALYSE D’APIS
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 !