0% ont trouvé ce document utile (0 vote)
169 vues22 pages

Swagger Avec Spring Boot: Up Asi Bureau E204

Transféré par

Houssayen Benouhiba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
169 vues22 pages

Swagger Avec Spring Boot: Up Asi Bureau E204

Transféré par

Houssayen Benouhiba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Swagger avec Spring Boot

UP ASI
Bureau E204

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 1


PLAN DU COURS

– Introduction

– Swagger

– Intégration Swagger

– Configuration Swagger

– Configuration avancée Swagger

– Personnalisation documentation Swagger

– Place à la pratique

– TP
© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 2
Introduction

• La documentation d’un logiciel aide à expliquer


comment utiliser un service ou un programme.

• Elle faciliter la maintenance ainsi que le développement


ultérieur d’un système.

• C’est une étape très importante dans le cas d’une API


(Une API permet de faire communiquer deux
programmes ensemble et d’échanger des données).

• Elle contient les informations nécessaires sur les APIs.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 3


Swagger

• Swagger est une spécification permettant de simplifier la


tâche de documentation des APIs REST.

• Swagger analyse le code et expose la documentation


sur une URL afin d’être utilisé par les
développeurs/opérationnels.

• Les API sont toujours synchronisées puisque la


documentation des méthodes, des paramètres et des
modèles est intégrée au code du serveur.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 4


Swagger

• Swagger affiche la liste de tous les endpoints de l’API


avec des informations détaillées, les paramètres et le
schéma de sortie au format JSON.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 5


Swagger

• Swagger-UI fournit une interface stylisée pour tester les


endpoints.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 6


Intégration Swagger

• Pour intégrer Swagger dans une application web, il suffit


juste d’ajouter cette dépendance dans le fichier
[Link] et puis faire maven update de votre projet:
<dependency>
<groupId>[Link]</groupId>
<artifactId> springfox-boot-starter </artifactId>
<version> 3.0.0 </version>
</dependency>

• Le projet Springfox automatise la documentation des


API construites avec Spring.
© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 7
Intégration Swagger

• Pour activer la prise en charge de la


spécification Swagger, il faut placer l'annotation
@EnableSwagger2 dans la classe main (contenant la
méthode main et permettant de scanner les packages
de l’application).

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 8


Configuration Swagger

• Créez une classe SwaggerConfig dans un nouveau


package appelé configuration.

@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis([Link]())
.paths([Link]())
.build();
}
}

• La classe Docket gère toutes les configurations.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 9


Configuration Swagger

La classe Docket contient les éléments suivants :

• Select: Initialiser une classe de ApiSelectorBuilder pour


donner l’accès aux méthodes de personnalisation.

• paths : filtrer selon l'URI des requêtes.

• apis : filtrer la documentation à exposer selon les


contrôleurs.
- basePackage: trier selon le Package.
- any: documenter toutes les classes dans tous les
packages.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 10


Configuration Swagger

• Redémarrez votre application


• Swagger est capable de générer une documentation
détaillée au format JSON.

[Link]

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 11


Configuration Swagger

• Swagger est capable d’accéder à une version au


format HTML via l'adresse suivante:

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 12


Configuration Swagger

• Informations personnalisées

@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis([Link]())
.paths([Link]())
.build().apiInfo(apiInfo());
}
private ApiInfo apiInfo () {
return new ApiInfoBuilder()
.title("Swagger Configuration for tpStockProject")
.description("\"Spring Boot Swagger configuration\"")
.version("1.1.0").build();
}

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 13


Configuration avancée Swagger

Filtrage des APIs


• La documentation contient le contrôleur d'erreur
de Spring, pour l'éliminer il faut utiliser les filtres.

• La méthode basePackage permet de demander à


Swagger de ne rien documenter en dehors du package
spécifié.
.apis([Link]("[Link]
.spring"))
© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 14
Configuration avancée Swagger

Filtrage des APIs


• La méthode paths permet d’éliminer une méthode
de documentation.
.paths([Link]("/client.*"))

• [Link]("/client.*") permet de passer


une expression régulière qui n'accepte que les URI
commençant par /client.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 15


Personnalisation documentation Swagger

Personnaliser la documentation grâce aux annotations


• Pour personnaliser les informations, il faut appliquer des
annotations sur les classes des contrôleurs ainsi que leurs
méthodes.

• @Api : permet d’ajouter une description pour chaque API.


@Api(tags = "Client management")

• @ApiOperation : permet de définir une description pour


chaque opération/méthode.
@ApiOperation(value = "Récupérer la liste des clients")

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 16


Personnalisation documentation Swagger

Personnaliser la documentation grâce aux annotations


Les informations définies
dans ces annotations se
retrouvent dans la page
[Link]

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 17


Place à la pratique

Une annotation de la couche Controller fournie par


Spring va être reflétée dans Swagger.
public Client retrieveClient(@PathVariable("client-id") Long clientId) {

@PathVariable sera reflété comme suit:

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 18


Place à la pratique

 Ajouter un client

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 19


Place à la pratique

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 20


TP

Exposer les services implémentés avec Swagger pour les


tester.

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 21


Swagger avec spring boot

Si vous avez des questions, n’hésitez pas à nous


contacter :

Département Informatique
UP ASI
Bureau E204

© 2021-2022 – ESPRIT – Module Architecture des SI II (Spring) 22

Vous aimerez peut-être aussi