Swagger és una eina poderosa i àmpliament utilitzada per a la documentació d'APIs RESTful. Proporciona una interfície interactiva que permet als desenvolupadors explorar i provar les seves APIs de manera fàcil i eficient. En aquesta secció, aprendrem què és Swagger, com utilitzar-lo per documentar una API i com integrar-lo en el nostre projecte.
Què és Swagger?
Swagger és un conjunt d'eines de codi obert per a la creació, definició i documentació d'APIs RESTful. La seva característica més destacada és Swagger UI, una interfície d'usuari que permet als desenvolupadors interactuar amb l'API directament des del navegador.
Característiques principals de Swagger:
- Documentació interactiva: Permet als usuaris provar les peticions directament des de la documentació.
- Generació automàtica de documentació: A partir de les anotacions en el codi, Swagger pot generar la documentació de manera automàtica.
- Suport per a múltiples llenguatges: Swagger és compatible amb diversos llenguatges de programació i frameworks.
Instal·lació de Swagger
Per començar a utilitzar Swagger en el nostre projecte, primer hem d'instal·lar les dependències necessàries. A continuació, es mostra com fer-ho en un projecte Node.js utilitzant Express.
Instal·lació de dependències
Configuració de Swagger en un projecte Express
- Crear un fitxer de configuració per a Swagger: Aquest fitxer contindrà la informació bàsica de la nostra API.
// swaggerConfig.js
const swaggerJsDoc = require('swagger-jsdoc');
const swaggerOptions = {
swaggerDefinition: {
openapi: '3.0.0',
info: {
title: 'API de Exemple',
version: '1.0.0',
description: 'Documentació de la nostra API de Exemple',
},
servers: [
{
url: 'http://localhost:3000',
},
],
},
apis: ['./routes/*.js'], // Ruta als fitxers on es troben les nostres rutes
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
module.exports = swaggerDocs;- Integrar Swagger en el servidor Express:
// server.js
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocs = require('./swaggerConfig');
const app = express();
const port = 3000;
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
app.listen(port, () => {
console.log(`Servidor en funcionament a http://localhost:${port}`);
});- Anotar les rutes amb Swagger: Utilitzarem comentaris especials per descriure les nostres rutes.
// routes/example.js
/**
* @swagger
* /example:
* get:
* summary: Obtenir un exemple
* responses:
* 200:
* description: Èxit
*/
app.get('/example', (req, res) => {
res.status(200).send('Exemple');
});Exploració de la documentació
Un cop configurat Swagger, podem accedir a la documentació interactiva de la nostra API navegant a http://localhost:3000/api-docs. Aquí podrem veure totes les rutes documentades, els paràmetres que accepten, les respostes que retornen i provar les peticions directament des del navegador.
Exercici pràctic
Objectiu
Documentar una API senzilla amb Swagger.
Passos
-
Crear una API bàsica amb Express:
- Crea un projecte Node.js.
- Instal·la Express i Swagger.
- Configura un servidor bàsic amb una ruta
/example.
-
Documentar la ruta
/exampleamb Swagger:- Afegeix comentaris Swagger a la ruta.
- Configura Swagger per generar la documentació.
Solució
// server.js
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerJsDoc = require('swagger-jsdoc');
const app = express();
const port = 3000;
const swaggerOptions = {
swaggerDefinition: {
openapi: '3.0.0',
info: {
title: 'API de Exemple',
version: '1.0.0',
description: 'Documentació de la nostra API de Exemple',
},
servers: [
{
url: 'http://localhost:3000',
},
],
},
apis: ['./routes/*.js'],
};
const swaggerDocs = swaggerJsDoc(swaggerOptions);
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
app.get('/example', (req, res) => {
res.status(200).send('Exemple');
});
app.listen(port, () => {
console.log(`Servidor en funcionament a http://localhost:${port}`);
});// routes/example.js
/**
* @swagger
* /example:
* get:
* summary: Obtenir un exemple
* responses:
* 200:
* description: Èxit
*/
app.get('/example', (req, res) => {
res.status(200).send('Exemple');
});Resum
En aquesta secció, hem après què és Swagger i com utilitzar-lo per documentar una API RESTful. Hem vist com instal·lar les dependències necessàries, configurar Swagger en un projecte Express i anotar les rutes per generar la documentació automàticament. Swagger és una eina essencial per a qualsevol desenvolupador d'APIs, ja que facilita la creació de documentació clara i interactiva, millorant la col·laboració i la comprensió de l'API per part de tots els implicats.
Curs de REST API: Principis de Disseny i Desenvolupament d'APIs RESTful
Mòdul 1: Introducció a les APIs RESTful
Mòdul 2: Disseny d'APIs RESTful
- Principis de disseny d'APIs RESTful
- Recursos i URIs
- Mètodes HTTP
- Codis d'estat HTTP
- Versionat d'APIs
- Documentació d'APIs
Mòdul 3: Desenvolupament d'APIs RESTful
- Configuració de l'entorn de desenvolupament
- Creació d'un servidor bàsic
- Gestió de peticions i respostes
- Autenticació i autorització
- Gestió d'errors
- Proves i validació
Mòdul 4: Bones Pràctiques i Seguretat
- Bones pràctiques en el disseny d'APIs
- Seguretat en APIs RESTful
- Rate limiting i throttling
- CORS i polítiques de seguretat
Mòdul 5: Eines i Frameworks
- Postman per a proves d'APIs
- Swagger per a documentació
- Frameworks populars per a APIs RESTful
- Integració contínua i desplegament
