Web APIs in Action (in French)

1 535 vues

Publié le

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

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 535
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
96
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Web APIs in Action (in French)

  1. 1. WEB APIS IN ACTION SFEIR – 17 octobre 2012
  2. 2. 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: – jlouvel@restlet.com – Twitter : @jlouvel et Google+ – Blog : blog.restlet.com
  3. 3. 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
  4. 4. TOUR D’HORIZON DES APIS WEB Partie 1/6
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. Copyright Restlet SAS – Tous droits réservés TWITTER ET LES APIS WEB REST API Database Streaming API Search API Web SiteiPhone Third-party
  9. 9. Copyright Restlet SAS – Tous droits réservés TWILIO, L’API WEB EST LE PRODUIT 9
  10. 10. 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
  11. 11. 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 !
  12. 12. Copyright Restlet SAS – Tous droits réservés NOMBRE D’APIS PUBLIQUES EN PLEINE CROISSANCE ! Source: ProgrammableWeb 1 million d’APIs en 2017 !
  13. 13. Copyright Restlet SAS – Tous droits réservés LE PLUS IMPRESSIONNANT EST CACHÉ L’ICEBERG DES APIS PRIVÉES! Source: ProgrammableWeb
  14. 14. 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
  15. 15. 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
  16. 16. DE REST AUX APIS WEB Partie 2/6
  17. 17. 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
  18. 18. 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.91991 1996 RFC 1945 1999 RFC 2616 2000 HTTP/1.1 bis2013 ? IETF draft W3C Notes Dissertation HTTP/2.0 IETF proposal? Vision original du Web (source: TBL) • Internet • Document • Hypertexte • Lecture et écriture
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. INTRODUCTION À RESTLET FRAMEWORK Partie 3/6
  23. 23. 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 EJ 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
  24. 24. Copyright Restlet SAS – Tous droits réservés DE NOMBREUSES RÉFÉRENCES PLUS DE 50 000 UTILISATEURS
  25. 25. 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
  26. 26. Copyright Restlet SAS – Tous droits réservés MULTI-CLOUD AUGMENTEZ LA PORTABILITÉ DE VOS APIS ET APPLIS WEB
  27. 27. 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
  28. 28. API RESTLET VS API JAX-RS Partie 4/6
  29. 29. 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
  30. 30. Copyright Restlet SAS – Tous droits réservés UNE API JAVA COMPLÈTE USAGE EN BIBLIOTHÈQUE OU EN FRAMEWORK
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. Copyright Restlet SAS – Tous droits réservés RESTLET API 1.1 VS JAX-RS 1.0
  35. 35. Copyright Restlet SAS – Tous droits réservés RESTLET API 2.0 VS JAX-RS 1.1
  36. 36. Copyright Restlet SAS – Tous droits réservés RESTLET API 2.1 VS JAX-RS 2.0
  37. 37. 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
  38. 38. 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
  39. 39. 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);
  40. 40. 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); }
  41. 41. Copyright Restlet SAS – Tous droits réservés PLUS QU’UNE API JAVA C’EST LE FRAMEWORK QUI COMPTE!
  42. 42. PROCHAINES ÉTAPES DU PROJET Partie 5/6
  43. 43. 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)
  44. 44. 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
  45. 45. 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
  46. 46. APISPARK, RESTLET AS A SERVICE Partie 6/6
  47. 47. 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é)
  48. 48. 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
  49. 49. Copyright Restlet SAS – Tous droits réservés CONSOLE APISPARK CATALOGUE D’APIS & DATA STORES
  50. 50. Copyright Restlet SAS – Tous droits réservés CONSOLE APISPARK TABLEAU DE BORD
  51. 51. Copyright Restlet SAS – Tous droits réservés CONSOLE APISPARK CONCEPTION D’API
  52. 52. Copyright Restlet SAS – Tous droits réservés CONSOLE APISPARK ANALYSE D’APIS
  53. 53. 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 !

×