Swagger, API, Node – Documenter une API avec Swagger
Swagger, c’est un assortiment d’outils indispensables pour documenter une API. L’aspect le plus saisissant de cet outil est sa faculté à générer une documentation digne de ce nom , une documentation qui peut-être maintenu et pas seulement par les développeurs.
1. Une fois dans la console, l’installation se fait avec la commande suivante. On fait une installation globale.
npm install -g swagger |
2. Se mettre dans le répertoire où on veut créer son app
cd /votre_chemin_vers/doc_api_swagger_io/
3. Créer votre projet avec swagger. On choisit un nom pour l’api api_2_movies
et on seletionne ensuite express
swagger project create |
Un fichier nommé swagger.yaml
va se créer automatiquement. C’est ce fichier par exemple que vous allez pouvoir éditer afin de la modifier au fur et à mesure que vous concevez votre API avec node.
Le résultat est visible à cette adresse http://127.0.0.1:10010/hello?name=Scott
swagger project start |
Le résultat est visible à cette adresse http://127.0.0.1:50226/#/
swagger project edit |
D’autres commandes pouvant être utile :
Vérifier si votre fichier swagger.yaml
est valide.
swagger project verify |
Pour sauvegarder la documentation
npm install swagger-tools --save |
swagger project start |
Il est que vous deviez installer toutes les dépendances.
npm install |
npm install swagger-tools --save |
swagger project start |
Pour générer la documentation http://localhost:10010/docs, il suffit d’ajouter les lignes marquées par le commentaire /* For docs */
dans le fichier app.js
'use strict'; var SwaggerExpress = require('swagger-express-mw'); /* For docs */ var SwaggerUi = require('swagger-tools/middleware/swagger-ui'); var app = require('express')(); module.exports = app; // for testing var config = { appRoot: __dirname // required config }; SwaggerExpress.create(config, function(err, swaggerExpress) { if (err) { throw err; } /* For docs */ app.use(SwaggerUi(swaggerExpress.runner.swagger)); // install middleware swaggerExpress.register(app); var port = process.env.PORT || 10010; app.listen(port); if (swaggerExpress.runner.swagger.paths['/hello']) { console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott'); } }); |
Source : http://robferguson.org/2015/06/06/build-your-microservices-api-with-swagger/
Un autre exemple d’API
Voilà un exemple beaucoup plus abouti qui mixe swagger, une API qui se créer au fil de l’eau avec express, mongoose et lodash et une utilisation de Postman pour manipuler cette API nouvellement créée.
Source : https://www.youtube.com/watch?v=i9yOksgUQ9Y
En savoir plus
- Un validateur de YML
http://www.yamllint.com/ - Swagger, The World’s Most Popular Framework for APIs.
http://swagger.io/ - Une démonstration convaincante et en live de la rédaction d’une documentation
http://editor.swagger.io/#/ - text
https://github.com/swagger-api - Getting started with Swagger and Swaggervel
http://blog.cjwfuller.com/2015/05/30/swaggervel/ - Integrate Swagger into Laravel
https://www.marcoraddatz.com/en/2015/07/21/integrate-swagger-into-laravel/ - API Blueprint. A powerful high-level API description language for web APIs.
https://apiblueprint.org/ - Un tutorial sur Swagger
http://idratherbewriting.com/pubapis_swagger/ - Get your swagger on!
http://blog.catchsoftware.com/2013/08/get-your-swagger-on/ - Swagger-PHP Documentation
http://zircote.com/swagger-php/ - Create your RESTful API with Laravel, the PHP Framework
https://www.udemy.com/laravel-5-php-framework-agile-and-practical-php-restful-api/ - X Crash Course – Swagger Integration with Node/Express (excellent)
https://www.youtube.com/watch?v=i9yOksgUQ9Y - Building APIs with Swagger, Designing and coding APIs in Node.js.
http://radar.oreilly.com/2015/09/building-apis-with-swagger.html - Swagger for Node.js HTTP API Design
https://blog.risingstack.com/swagger-nodejs/ - How to Create a REST API with Node.js and Express
https://html5hive.org/how-to-create-rest-api-with-node-js-and-express/ - Generate client stubs & document your REST-API using Swagger & Spring by Johannes Fiala
https://www.youtube.com/watch?v=43GhBbP–oI - Webcast: How We Built the Online Swagger Editor
https://www.youtube.com/watch?v=5xDVe-t6pnQ