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

  1. Dissenyar una API RESTful que compleixi amb els principis de REST.
  2. Implementar l'API utilitzant un framework de la teva elecció.
  3. Documentar l'API de manera clara i completa.
  4. Provar l'API per assegurar-te que funciona correctament i és segura.

Requisits del Projecte

  1. 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.

  1. 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.

  1. 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.

  1. 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

  1. Defineix els recursos per a una API de gestió de tasques (per exemple, tasques, usuaris).
  2. Implementa les URIs i els mètodes HTTP per a aquests recursos.
  3. Crea el servidor bàsic utilitzant el framework de la teva elecció.
  4. Implementa la gestió de peticions i respostes per als recursos definits.
  5. Documenta la teva API utilitzant Swagger o una eina similar.
  6. 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.

© Copyright 2024. Tots els drets reservats