En aquest tema, aprendrem com gestionar les peticions i respostes en una API RESTful. Aquest és un aspecte crucial del desenvolupament d'APIs, ja que determina com els clients interactuen amb el servidor i com aquest respon a les seves sol·licituds.

Conceptes Clau

  1. Peticions HTTP

Una petició HTTP és una sol·licitud enviada per un client a un servidor. Les peticions HTTP tenen diversos components:

  • Mètode HTTP: Indica l'acció que es vol realitzar (GET, POST, PUT, DELETE, etc.).
  • URI (Uniform Resource Identifier): Identifica el recurs al qual es vol accedir.
  • Headers: Contenen informació addicional sobre la petició (autenticació, tipus de contingut, etc.).
  • Cos de la petició: Conté les dades que es volen enviar al servidor (només per a mètodes com POST i PUT).

  1. Respostes HTTP

Una resposta HTTP és la resposta del servidor a una petició del client. Les respostes HTTP també tenen diversos components:

  • Codi d'estat: Indica el resultat de la petició (200 OK, 404 Not Found, etc.).
  • Headers: Contenen informació addicional sobre la resposta (tipus de contingut, longitud del contingut, etc.).
  • Cos de la resposta: Conté les dades que es volen enviar al client.

  1. Mètodes HTTP

Els mètodes HTTP més comuns són:

  • GET: Recupera informació d'un recurs.
  • POST: Crea un nou recurs.
  • PUT: Actualitza un recurs existent.
  • DELETE: Elimina un recurs.

Exemples Pràctics

  1. Configuració d'un Servidor Bàsic amb Node.js i Express

Primer, configurarem un servidor bàsic utilitzant Node.js i Express per gestionar les peticions i respostes.

Instal·lació de Node.js i Express

# Instal·lació de Node.js (si no està instal·lat)
sudo apt-get install nodejs

# Instal·lació de npm (Node Package Manager)
sudo apt-get install npm

# Creació d'un nou projecte
mkdir api-restful
cd api-restful
npm init -y

# Instal·lació d'Express
npm install express

Creació del Servidor

// Importació del mòdul Express
const express = require('express');
const app = express();
const port = 3000;

// Middleware per gestionar JSON
app.use(express.json());

// Ruta GET per obtenir informació
app.get('/api/resource', (req, res) => {
  res.status(200).json({ message: 'Recurs obtingut correctament' });
});

// Ruta POST per crear un nou recurs
app.post('/api/resource', (req, res) => {
  const data = req.body;
  res.status(201).json({ message: 'Recurs creat correctament', data });
});

// Ruta PUT per actualitzar un recurs existent
app.put('/api/resource/:id', (req, res) => {
  const id = req.params.id;
  const data = req.body;
  res.status(200).json({ message: `Recurs amb ID ${id} actualitzat correctament`, data });
});

// Ruta DELETE per eliminar un recurs
app.delete('/api/resource/:id', (req, res) => {
  const id = req.params.id;
  res.status(200).json({ message: `Recurs amb ID ${id} eliminat correctament` });
});

// Inici del servidor
app.listen(port, () => {
  console.log(`Servidor escoltant a http://localhost:${port}`);
});

  1. Prova de les Peticions amb Postman

Per provar les peticions, podem utilitzar una eina com Postman.

Prova d'una Petició GET

  1. Obre Postman.
  2. Selecciona el mètode GET.
  3. Introdueix l'URL: http://localhost:3000/api/resource.
  4. Fes clic a "Send".
  5. Hauries de veure una resposta amb el missatge: Recurs obtingut correctament.

Prova d'una Petició POST

  1. Selecciona el mètode POST.
  2. Introdueix l'URL: http://localhost:3000/api/resource.
  3. A la pestanya "Body", selecciona "raw" i "JSON".
  4. Introdueix el següent JSON:
    {
      "name": "Nou Recurs",
      "value": "123"
    }
    
  5. Fes clic a "Send".
  6. Hauries de veure una resposta amb el missatge: Recurs creat correctament i les dades enviades.

Exercicis Pràctics

Exercici 1: Afegir una Ruta PATCH

Afegiu una ruta PATCH per actualitzar parcialment un recurs. La ruta hauria de ser /api/resource/:id.

Solució

// Ruta PATCH per actualitzar parcialment un recurs existent
app.patch('/api/resource/:id', (req, res) => {
  const id = req.params.id;
  const data = req.body;
  res.status(200).json({ message: `Recurs amb ID ${id} actualitzat parcialment`, data });
});

Exercici 2: Gestió d'Errors

Afegiu gestió d'errors per a les rutes existents. Per exemple, si un recurs no es troba, hauríeu de retornar un codi d'estat 404.

Solució

// Ruta GET amb gestió d'errors
app.get('/api/resource/:id', (req, res) => {
  const id = req.params.id;
  // Suposem que no trobem el recurs
  if (id !== '1') {
    return res.status(404).json({ message: 'Recurs no trobat' });
  }
  res.status(200).json({ message: `Recurs amb ID ${id} obtingut correctament` });
});

Resum

En aquesta secció, hem après com gestionar les peticions i respostes en una API RESTful utilitzant Node.js i Express. Hem configurat un servidor bàsic, creat rutes per als mètodes HTTP comuns i provat les peticions amb Postman. També hem afegit exercicis pràctics per reforçar els conceptes apresos. En el proper tema, explorarem l'autenticació i l'autorització en APIs RESTful.

© Copyright 2024. Tots els drets reservats