Contenu du cours
Backend Spring Boot
Backend Spring Boot
Tester l'API RESTful
Dans le chapitre précédent, nous avons été introduits à Swagger
et comment travailler avec lui. Dans ce chapitre, nous allons explorer son utilisation à travers un exemple pratique et compléter entièrement notre première API REST !
Commencer avec Swagger
Dans la vidéo, vous avez été introduit à l'interface principale de Swagger
et comment interagir avec elle.
Pour les méthodes qui acceptent un corps de requête, Swagger
génère automatiquement du JSON basé sur l'objet que le point de terminaison actuel reçoit.
De plus, si vous avez des paramètres dans l'URL, vous pouvez facilement les spécifier dans les champs correspondants.
Swagger
montre également les codes de statut possibles pour le point de terminaison et spécifie le type de retour de l'objet (JSON/XML).
Et surtout important—vous n'avez pas eu besoin d'écrire de code supplémentaire pour générer cette documentation !
Il suffit d'ajouter la dépendance et de la configurer si nécessaire (bien que souvent aucune configuration ne soit requise) pour obtenir automatiquement la documentation de votre API REST !
Travailler avec les annotations
Passons en revue brièvement les annotations couvertes dans ce chapitre :
@Tag
– Regroupe les points de terminaison associés et leur ajoute une description.
BookController
@Tag(name = "Books", description = "API for managing books") public class BookController { // struct }
@Operation
– Décrit une méthode API spécifique, y compris son objectif et une brève description.
BookController
@Operation(summary = "Get a list of all books", description = "Returns a list of all available books") public List<BookResponseDTO> getAllBooks() { return bookService.findAllBooks(); }
@Parameter
– Décrit les paramètres de méthode, tels que les variables de chemin, les paramètres de requête, etc.
BookController
public BookResponseDTO getBookById( @Parameter(description = "ID of the book to retrieve", required = true) @PathVariable String id) { return bookService.getBookById(id); }
@ApiResponse
– Décrit une réponse possible spécifique, y compris le code de réponse et sa description.
BookController
@ApiResponse(responseCode = "204", description = "Book successfully deleted") @DeleteMapping("/{id}") public void deleteBook( @Parameter(description = "ID of the book to delete", required = true) @PathVariable String id ) { bookService.deleteBook(id); }
@ApiResponses
– Définit un ensemble de réponses possibles pour la méthode, y compris les codes d'état et les descriptions.
BookController
@ApiResponses({ @ApiResponse(responseCode = "200", description = "Book successfully updated"), @ApiResponse(responseCode = "404", description = "Book not found") }) @PutMapping("/{id}") public BookResponseDTO updateBook( @Parameter(description = "ID of the book to update", required = true) @PathVariable String id, @RequestBody(description = "Updated book details", required = true) BookRequestDTO book ) { return bookService.updateBook(id, book); }
Projet
Je fournis également un lien vers le projet au cas où quelque chose ne fonctionnerait pas ou si vous souhaitez l'explorer plus en détail :
Résumé
Swagger
permet la génération automatique d'une documentation détaillée pour votre API, la rendant plus facile à utiliser et à tester.
Avec des annotations telles que @Operation
, @ApiResponse
, et @Parameter
, vous pouvez décrire le comportement des méthodes, paramètres, et des réponses possibles sans ajouter de code supplémentaire. Cela rend votre API REST plus claire et plus accessible aux développeurs.
Merci pour vos commentaires !