Els codis d'estat HTTP són una part fonamental de les APIs RESTful, ja que proporcionen informació sobre el resultat de les peticions realitzades pels clients. Aquests codis permeten als clients saber si una petició s'ha completat amb èxit, si hi ha hagut un error, o si es necessita alguna acció addicional. En aquesta secció, explorarem els codis d'estat HTTP més comuns i com utilitzar-los correctament en el disseny d'APIs RESTful.

Categories de Codis d'Estat HTTP

Els codis d'estat HTTP es divideixen en cinc categories principals:

  1. 1xx (Informatius): Indiquen que la petició ha estat rebuda i el procés continua.
  2. 2xx (Èxit): Indiquen que la petició s'ha processat correctament.
  3. 3xx (Redirecció): Indiquen que es necessita una acció addicional per completar la petició.
  4. 4xx (Error del client): Indiquen que hi ha hagut un error en la petició del client.
  5. 5xx (Error del servidor): Indiquen que hi ha hagut un error en el servidor mentre processava la petició.

Codis d'Estat HTTP Comuns

2xx (Èxit)

  • 200 OK: La petició s'ha processat correctament. Aquest codi s'utilitza sovint per a peticions GET i POST.
  • 201 Created: La petició s'ha completat i ha resultat en la creació d'un nou recurs. S'utilitza principalment per a peticions POST.
  • 204 No Content: La petició s'ha processat correctament, però no hi ha contingut per retornar. Sovint s'utilitza per a peticions DELETE.

3xx (Redirecció)

  • 301 Moved Permanently: El recurs sol·licitat s'ha mogut permanentment a una nova ubicació.
  • 302 Found: El recurs sol·licitat s'ha trobat, però en una ubicació temporal diferent.
  • 304 Not Modified: El recurs no ha estat modificat des de la darrera petició. S'utilitza amb la memòria cau del navegador.

4xx (Error del client)

  • 400 Bad Request: La petició no es pot processar a causa d'un error del client (per exemple, sintaxi incorrecta).
  • 401 Unauthorized: La petició requereix autenticació. S'utilitza quan l'usuari no està autenticat.
  • 403 Forbidden: El servidor ha entès la petició, però es nega a autoritzar-la. S'utilitza quan l'usuari no té permisos per accedir al recurs.
  • 404 Not Found: El recurs sol·licitat no s'ha trobat al servidor.
  • 409 Conflict: La petició no es pot completar a causa d'un conflicte amb l'estat actual del recurs.

5xx (Error del servidor)

  • 500 Internal Server Error: El servidor ha trobat una condició inesperada que li impedeix completar la petició.
  • 502 Bad Gateway: El servidor, actuant com a passarel·la o proxy, ha rebut una resposta no vàlida del servidor d'origen.
  • 503 Service Unavailable: El servidor no està disponible actualment (per exemple, per manteniment).

Exemples Pràctics

Exemple 1: Petició GET amb èxit

GET /api/products/123 HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Product Name",
  "price": 29.99
}

Exemple 2: Petició POST amb creació de recurs

POST /api/products HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "New Product",
  "price": 19.99
}

HTTP/1.1 201 Created
Location: /api/products/124

Exemple 3: Petició DELETE amb èxit

DELETE /api/products/123 HTTP/1.1
Host: example.com

HTTP/1.1 204 No Content

Exercicis Pràctics

Exercici 1: Identificar el codi d'estat correcte

Per a cada situació següent, identifica el codi d'estat HTTP més adequat:

  1. Un client intenta accedir a un recurs que no existeix.
  2. Un client envia una petició POST per crear un nou recurs i la creació és exitosa.
  3. Un client intenta accedir a un recurs sense estar autenticat.
  4. Un client envia una petició DELETE i el recurs s'elimina correctament.

Solucions

  1. 404 Not Found
  2. 201 Created
  3. 401 Unauthorized
  4. 204 No Content

Errors Comuns i Consells

  • Error Comú: Utilitzar incorrectament els codis d'estat 4xx i 5xx.

    • Consell: Recorda que els codis 4xx indiquen errors del client, mentre que els 5xx indiquen errors del servidor.
  • Error Comú: No proporcionar informació addicional en els missatges d'error.

    • Consell: Afegeix missatges d'error descriptius en el cos de la resposta per ajudar els clients a entendre què ha anat malament.

Conclusió

Els codis d'estat HTTP són essencials per a la comunicació efectiva entre clients i servidors en una API RESTful. Utilitzar els codis d'estat correctes ajuda a garantir que els clients entenguin el resultat de les seves peticions i puguin prendre les accions necessàries. En el proper tema, explorarem el versionat d'APIs, una pràctica important per mantenir la compatibilitat i l'evolució de les APIs RESTful.

© Copyright 2024. Tots els drets reservats