Menu

Swagger

Swagger

Outils qui permet en quelques lignes de crée un back jolie et bien en forme (~ strapi mais c'est toi qui fait tout)

:warning: Attention il y a beaucoup de versions npm de swagger, il faut bien faire attention à la version que l'on installe : express-jsdoc-swagger

C'est une OpenAPI, la doc c'est ici ou la

Le rendu final est plus ou moins comme ça

1# Init 2npm i express-jsdoc-swagger 3
1const express = require("express"); 2const app = express(); 3 4const expressJSDocSwagger = require("express-jsdoc-swagger"); 5 6const options = { 7 info: { 8 version: "1.0.0", // version a personnaliser 9 title: "nom-du-projet", 10 license: { 11 name: "MIT", 12 }, 13 }, 14 security: { 15 BasicAuth: { 16 type: "http", 17 scheme: "basic", 18 }, 19 }, 20 swaggerUIPath: "/tata&toto", // url où se trouve la doc 21 baseDir: __dirname, 22 filesPattern: "./**/*.js", 23}; 24 25expressJSDocSwagger(app)(options); 26

Dans le router créer une JSDoc adapté à swagger

1/** 2 * Une categories 3 * @typedef {Object} Categories 4 * @property {number} id - id 5 * @property {string} category - Description d'une categorie 6 */ 7 8/** 9 * GET /api/categories 10 * @summary Get all categories 11 * @tags GET 12 * @return {[Category]} 200 - success response - application/json 13 * @return {object} 400 - Bad request response 14 */ 15router.get("/categories", categoriesController.getAll); 16 17/** 18 * POST /api/categories/{id} 19 * @summary Add one catégorie in DB 20 * @tags POST 21 * @return {Categories} 200 - success response - application/json 22 * @return {object} 400 - Bad request response 23 */ 24router.post("/categories/:id", categoriesController.addOne); 25