SlideShare une entreprise Scribd logo
1  sur  16
Swagger
Martin Yung
17 avril 2015
Objectifs
 Rappels sur les notions
 REST
 API
 Présentation de la norme Swagger
 Outils
La valeur d'un objet bien conçu : c’est quand il y a un ensemble riche de
capacités que les personnes qui l'utilisent peuvent faire des choses que
le concepteur n'a jamais imaginé. par Don Norman
The value of a well designed object is when it has such a rich set of affordances
that the people who use it could do things that the designer never imagined.
REST
 = Representational state transfer
 Architecture Client-serveur
 Sans état (stateless)
 Avantage
 Respecte le standard HTTP (verbes : GET, POST…)
 Plus simple, moins verbose que SOAP
API REST
 = Application Programming Interface
 Contrat de service
 Formats de messages
 XML
 JSON
 Exemple
 USA.gov
 Supporté par
 APIgee
 Microsoft Azure API Management
Qu’est-ce que Swagger ?
 Grammaire JSON/YAML
 Décrit une API REST
 Equivalent de WSDL pour REST
 Technologies supportées : .NET, Java, NodeJS…
 Alternatives
 Aucun standard s’impose
 WADL (Web Application Description Language)
 Soumis à W3C par SUN mais non standardisé
Swagger 2.0
 Sortie en septembre 2014
 Supporte Markdown
 Un seul fichier : swagger.json par défaut
Comment utiliser ?
 API First
 Utiliser un éditeur Swagger
 Générer la documentation en HTML
 Code First (.NET)
 Ecrire les codes pour les controllers et modèles de vue (design pattern
MVVM)
 Utiliser le nuget Swashbuckle
swagger-editor
swagger-to-html
Swashbuckle
Comment décrire un endpoint
 Path
 /api/parametre/titre/descriptif
 {get/post}
 description
 parameters
 responses
 200
 404
Comment décrire un paramètre /
une réponse
 parameters
 name
 in
 description
 schema
 type
 properties
 produit
 type : object
 valeurFaciale
 …
Ce que nous avons vu
 Décrire les endpoints avec la norme Swagger
 Utiliser les outils
 swagger-editor
 swagger-to-html
 Swashbuckle
Resources
 https://github.com/swagger-api/swagger-
spec/blob/master/versions/2.0.md
 https://www.nuget.org/packages/swashbuckle
Merci 

Contenu connexe

Tendances

Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...Edureka!
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMIKorteby Farouk
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8Antoine Rey
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et streamFranck SIMON
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI JavaZakaria Bouazza
 

Tendances (20)

Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...
Lambda Expressions in Java | Java Lambda Tutorial | Java Certification Traini...
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Langage C#
Langage C#Langage C#
Langage C#
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Presentation swagger
Presentation swaggerPresentation swagger
Presentation swagger
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Marzouk jsp
Marzouk jspMarzouk jsp
Marzouk jsp
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 

Similaire à Swagger pour documenter votre REST API - présentation en français

Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec MulesoftSpikeeLabs
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Quentin Adam
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchIdriss Neumann
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeurCamille Roux
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIOlivia Reaney
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture RESTFadel Chafai
 
20140130 mug lyon - post-mortem d'une application métier
20140130   mug lyon - post-mortem d'une application métier20140130   mug lyon - post-mortem d'une application métier
20140130 mug lyon - post-mortem d'une application métierMatthieu DUFOURNEAUD
 
Azure Api management
Azure Api managementAzure Api management
Azure Api managementMichel HUBERT
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementCellenza
 
Android fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE ApplicationAndroid fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE ApplicationAdil Ourida
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?Marius Zaharia
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008guest33ece8
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Francois Daoust
 

Similaire à Swagger pour documenter votre REST API - présentation en français (20)

Le design d'API avec Mulesoft
Le design d'API avec MulesoftLe design d'API avec Mulesoft
Le design d'API avec Mulesoft
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Bbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic searchBbl microservices avec vert.x cdi elastic search
Bbl microservices avec vert.x cdi elastic search
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeur
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une API
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
20140130 mug lyon - post-mortem d'une application métier
20140130   mug lyon - post-mortem d'une application métier20140130   mug lyon - post-mortem d'une application métier
20140130 mug lyon - post-mortem d'une application métier
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Azure Api management
Azure Api managementAzure Api management
Azure Api management
 
DevCon 3 : Azure API Management
DevCon 3 : Azure API ManagementDevCon 3 : Azure API Management
DevCon 3 : Azure API Management
 
Android fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE ApplicationAndroid fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE Application
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?
 

Swagger pour documenter votre REST API - présentation en français

  • 2. Objectifs  Rappels sur les notions  REST  API  Présentation de la norme Swagger  Outils
  • 3. La valeur d'un objet bien conçu : c’est quand il y a un ensemble riche de capacités que les personnes qui l'utilisent peuvent faire des choses que le concepteur n'a jamais imaginé. par Don Norman The value of a well designed object is when it has such a rich set of affordances that the people who use it could do things that the designer never imagined.
  • 4. REST  = Representational state transfer  Architecture Client-serveur  Sans état (stateless)  Avantage  Respecte le standard HTTP (verbes : GET, POST…)  Plus simple, moins verbose que SOAP
  • 5. API REST  = Application Programming Interface  Contrat de service  Formats de messages  XML  JSON  Exemple  USA.gov  Supporté par  APIgee  Microsoft Azure API Management
  • 6. Qu’est-ce que Swagger ?  Grammaire JSON/YAML  Décrit une API REST  Equivalent de WSDL pour REST  Technologies supportées : .NET, Java, NodeJS…  Alternatives  Aucun standard s’impose  WADL (Web Application Description Language)  Soumis à W3C par SUN mais non standardisé
  • 7. Swagger 2.0  Sortie en septembre 2014  Supporte Markdown  Un seul fichier : swagger.json par défaut
  • 8. Comment utiliser ?  API First  Utiliser un éditeur Swagger  Générer la documentation en HTML  Code First (.NET)  Ecrire les codes pour les controllers et modèles de vue (design pattern MVVM)  Utiliser le nuget Swashbuckle
  • 12. Comment décrire un endpoint  Path  /api/parametre/titre/descriptif  {get/post}  description  parameters  responses  200  404
  • 13. Comment décrire un paramètre / une réponse  parameters  name  in  description  schema  type  properties  produit  type : object  valeurFaciale  …
  • 14. Ce que nous avons vu  Décrire les endpoints avec la norme Swagger  Utiliser les outils  swagger-editor  swagger-to-html  Swashbuckle

Notes de l'éditeur

  1. Donald Arthur "Don" Norman (born December 25, 1935) is the director of The Design Lab at University of California, San Diego (cf http://en.wikipedia.org/wiki/Don_Norman)
  2. http://www.usa.gov/About/developer-resources/federal-agency-directory/interactivedoc.shtml#!/contacts Séparation de responsabilité Front : HTML, CSS, JavaScript (AngularJS) Back : .NET, NodeJS, PHP http://azure.microsoft.com/en-us/documentation/articles/api-management-howto-import-api/
  3. https://github.com/swagger-api/swagger-spec/tree/master/versions
  4. swagger-to-html : https://www.npmjs.com/package/swagger-to-html Swashbuckle : https://www.nuget.org/packages/swashbuckle
  5. Installer NodeJS Lancer dans l’invité de commande : git clone https://github.com/swagger-api/swagger-editor.git cd swagger-editor npm start
  6. Installer NodeJS Lancer dans l’invité de commande : npm install –g swagger-to-html swagger-to-html swagger.json c:\output