Introducció
En aquest projecte final, aplicaràs tots els coneixements adquirits al llarg del curs per dissenyar i desenvolupar la teva pròpia API RESTful. Aquest projecte et permetrà consolidar els conceptes apresos i demostrar la teva capacitat per crear una API funcional i ben dissenyada.
Objectius del Projecte
- Dissenyar una API RESTful que compleixi amb els principis de REST.
- Implementar l'API utilitzant un framework de la teva elecció.
- Documentar l'API de manera clara i completa.
- Provar l'API per assegurar-te que funciona correctament i és segura.
Requisits del Projecte
- Disseny de l'API
- Definir els recursos: Identifica els recursos que la teva API gestionarà. Per exemple, si estàs creant una API per a una botiga en línia, els recursos podrien ser
productes
,categories
,comandes
, etc. - Definir les URIs: Estableix les URIs per accedir als recursos. Segueix les bones pràctiques per a la creació d'URIs.
- Definir els mètodes HTTP: Especifica quins mètodes HTTP (GET, POST, PUT, DELETE) s'utilitzaran per a cada operació sobre els recursos.
- Definir els codis d'estat HTTP: Estableix els codis d'estat que retornarà la teva API en diferents situacions (èxit, error, etc.).
- Versionat de l'API: Decideix com versionaràs la teva API.
- Implementació de l'API
- Configuració de l'entorn de desenvolupament: Configura el teu entorn de desenvolupament amb les eines necessàries (editor de codi, framework, etc.).
- Creació del servidor bàsic: Implementa un servidor bàsic que pugui gestionar les peticions HTTP.
- Gestió de peticions i respostes: Implementa la lògica per gestionar les peticions i retornar les respostes adequades.
- Autenticació i autorització: Implementa mecanismes d'autenticació i autorització si són necessaris per a la teva API.
- Gestió d'errors: Implementa una gestió d'errors robusta per manejar situacions inesperades.
- Proves i validació: Realitza proves per assegurar-te que la teva API funciona correctament i compleix amb els requisits.
- Documentació de l'API
- Documentació de recursos i URIs: Proporciona una descripció detallada dels recursos i les URIs de la teva API.
- Documentació de mètodes HTTP: Especifica els mètodes HTTP disponibles per a cada recurs i les operacions que realitzen.
- Exemples de peticions i respostes: Inclou exemples de peticions i respostes per ajudar els usuaris a comprendre com interactuar amb la teva API.
- Codis d'estat HTTP: Documenta els codis d'estat que la teva API pot retornar i el seu significat.
- Proves i Validació
- Proves unitàries: Escriu proves unitàries per verificar que cada component de la teva API funciona correctament.
- Proves d'integració: Realitza proves d'integració per assegurar-te que els diferents components de la teva API funcionen bé junts.
- Proves de seguretat: Realitza proves de seguretat per assegurar-te que la teva API és segura i no està exposada a vulnerabilitats comunes.
Exemples i Estructura
Exemples de Recursos i URIs
Recurso | URI Base | Mètodes HTTP |
---|---|---|
Productes | /api/v1/productes |
GET, POST |
Producte | /api/v1/productes/{id} |
GET, PUT, DELETE |
Categories | /api/v1/categories |
GET, POST |
Categoria | /api/v1/categories/{id} |
GET, PUT, DELETE |
Exemple de Codi: Creació d'un Servidor Bàsic amb Express (Node.js)
const express = require('express'); const app = express(); const port = 3000; app.use(express.json()); app.get('/api/v1/productes', (req, res) => { res.status(200).json({ message: 'Llista de productes' }); }); app.post('/api/v1/productes', (req, res) => { const nouProducte = req.body; res.status(201).json({ message: 'Producte creat', producte: nouProducte }); }); app.listen(port, () => { console.log(`Servidor escoltant a http://localhost:${port}`); });
Exercici Pràctic
- Defineix els recursos per a una API de gestió de tasques (per exemple,
tasques
,usuaris
). - Implementa les URIs i els mètodes HTTP per a aquests recursos.
- Crea el servidor bàsic utilitzant el framework de la teva elecció.
- Implementa la gestió de peticions i respostes per als recursos definits.
- Documenta la teva API utilitzant Swagger o una eina similar.
- Realitza proves per assegurar-te que la teva API funciona correctament.
Solució de l'Exercici
Definició de Recursos i URIs
Recurso | URI Base | Mètodes HTTP |
---|---|---|
Tasques | /api/v1/tasques |
GET, POST |
Tasca | /api/v1/tasques/{id} |
GET, PUT, DELETE |
Usuaris | /api/v1/usuaris |
GET, POST |
Usuari | /api/v1/usuaris/{id} |
GET, PUT, DELETE |
Implementació del Servidor Bàsic amb Express (Node.js)
const express = require('express'); const app = express(); const port = 3000; app.use(express.json()); let tasques = []; let usuaris = []; app.get('/api/v1/tasques', (req, res) => { res.status(200).json(tasques); }); app.post('/api/v1/tasques', (req, res) => { const novaTasca = req.body; tasques.push(novaTasca); res.status(201).json({ message: 'Tasca creada', tasca: novaTasca }); }); app.get('/api/v1/tasques/:id', (req, res) => { const tasca = tasques.find(t => t.id === parseInt(req.params.id)); if (tasca) { res.status(200).json(tasca); } else { res.status(404).json({ message: 'Tasca no trobada' }); } }); app.put('/api/v1/tasques/:id', (req, res) => { const tasca = tasques.find(t => t.id === parseInt(req.params.id)); if (tasca) { Object.assign(tasca, req.body); res.status(200).json({ message: 'Tasca actualitzada', tasca }); } else { res.status(404).json({ message: 'Tasca no trobada' }); } }); app.delete('/api/v1/tasques/:id', (req, res) => { const index = tasques.findIndex(t => t.id === parseInt(req.params.id)); if (index !== -1) { tasques.splice(index, 1); res.status(200).json({ message: 'Tasca eliminada' }); } else { res.status(404).json({ message: 'Tasca no trobada' }); } }); app.listen(port, () => { console.log(`Servidor escoltant a http://localhost:${port}`); });
Conclusió
En aquest projecte final, has tingut l'oportunitat de dissenyar i desenvolupar una API RESTful completa. Has après a definir recursos i URIs, implementar un servidor bàsic, gestionar peticions i respostes, documentar la teva API i realitzar proves per assegurar-te que funciona correctament. Aquest projecte t'ha proporcionat una experiència pràctica que et serà molt útil en el desenvolupament d'APIs en el món real.
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