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:
- 1xx (Informatius): Indiquen que la petició ha estat rebuda i el procés continua.
- 2xx (Èxit): Indiquen que la petició s'ha processat correctament.
- 3xx (Redirecció): Indiquen que es necessita una acció addicional per completar la petició.
- 4xx (Error del client): Indiquen que hi ha hagut un error en la petició del client.
- 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
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:
- Un client intenta accedir a un recurs que no existeix.
- Un client envia una petició POST per crear un nou recurs i la creació és exitosa.
- Un client intenta accedir a un recurs sense estar autenticat.
- Un client envia una petició DELETE i el recurs s'elimina correctament.
Solucions
- 404 Not Found
- 201 Created
- 401 Unauthorized
- 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.
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