Els mètodes HTTP són fonamentals per a la comunicació entre clients i servidors en una API RESTful. Aquests mètodes defineixen les accions que es poden realitzar sobre els recursos. En aquesta secció, explorarem els mètodes HTTP més comuns i com s'utilitzen en el context de les APIs RESTful.
Mètodes HTTP Principals
GET
- Descripció: Recupera informació d'un recurs específic.
- Ús: Utilitzat per obtenir dades sense modificar l'estat del recurs.
- Idempotència: Sí (fer múltiples peticions GET no canvia l'estat del recurs).
- Exemple:
GET /users/123 HTTP/1.1 Host: api.example.com
{ "id": 123, "name": "John Doe", "email": "[email protected]" }
POST
- Descripció: Crea un nou recurs.
- Ús: Utilitzat per enviar dades al servidor per crear un nou recurs.
- Idempotència: No (fer múltiples peticions POST pot crear múltiples recursos).
- Exemple:
POST /users HTTP/1.1 Host: api.example.com Content-Type: application/json { "name": "Jane Doe", "email": "[email protected]" }
{ "id": 124, "name": "Jane Doe", "email": "[email protected]" }
PUT
- Descripció: Actualitza un recurs existent o crea un nou recurs si no existeix.
- Ús: Utilitzat per enviar dades al servidor per actualitzar un recurs existent.
- Idempotència: Sí (fer múltiples peticions PUT amb les mateixes dades no canvia l'estat del recurs més d'una vegada).
- Exemple:
PUT /users/123 HTTP/1.1 Host: api.example.com Content-Type: application/json { "name": "John Doe", "email": "[email protected]" }
{ "id": 123, "name": "John Doe", "email": "[email protected]" }
DELETE
- Descripció: Elimina un recurs específic.
- Ús: Utilitzat per eliminar un recurs del servidor.
- Idempotència: Sí (fer múltiples peticions DELETE sobre el mateix recurs no canvia l'estat del recurs més d'una vegada).
- Exemple:
DELETE /users/123 HTTP/1.1 Host: api.example.com
{ "message": "User deleted successfully" }
PATCH
- Descripció: Actualitza parcialment un recurs existent.
- Ús: Utilitzat per enviar dades al servidor per actualitzar parcialment un recurs.
- Idempotència: Sí (fer múltiples peticions PATCH amb les mateixes dades no canvia l'estat del recurs més d'una vegada).
- Exemple:
PATCH /users/123 HTTP/1.1 Host: api.example.com Content-Type: application/json { "email": "[email protected]" }
{ "id": 123, "name": "John Doe", "email": "[email protected]" }
Comparació de Mètodes HTTP
Mètode | Descripció | Idempotència | Ús Principal |
---|---|---|---|
GET | Recupera informació d'un recurs | Sí | Obtenir dades |
POST | Crea un nou recurs | No | Enviar dades per crear un recurs |
PUT | Actualitza o crea un recurs | Sí | Actualitzar dades |
DELETE | Elimina un recurs | Sí | Eliminar dades |
PATCH | Actualitza parcialment un recurs | Sí | Actualitzar parcialment dades |
Exercicis Pràctics
Exercici 1: Crear un nou usuari
- Utilitza el mètode POST per crear un nou usuari amb les següents dades:
- Nom: Alice Smith
- Correu electrònic: [email protected]
Solució:
POST /users HTTP/1.1 Host: api.example.com Content-Type: application/json { "name": "Alice Smith", "email": "[email protected]" }
Exercici 2: Actualitzar l'email d'un usuari existent
- Utilitza el mètode PUT per actualitzar l'email de l'usuari amb ID 125 a "[email protected]".
Solució:
PUT /users/125 HTTP/1.1 Host: api.example.com Content-Type: application/json { "name": "Alice Smith", "email": "[email protected]" }
Exercici 3: Eliminar un usuari
- Utilitza el mètode DELETE per eliminar l'usuari amb ID 125.
Solució:
Errors Comuns i Consells
- GET amb cos: No incloguis un cos en les peticions GET. Els cossos en les peticions GET no són estàndard i poden no ser suportats per tots els servidors.
- POST vs. PUT: Utilitza POST per crear nous recursos i PUT per actualitzar recursos existents. Si no estàs segur de si el recurs existeix, PUT és una opció segura ja que pot crear o actualitzar.
- Idempotència: Recorda que GET, PUT, DELETE i PATCH són idempotents, mentre que POST no ho és. Això és important per a la gestió d'errors i la repetició de peticions.
Conclusió
Els mètodes HTTP són essencials per a la interacció amb les APIs RESTful. Comprendre com i quan utilitzar cada mètode és crucial per dissenyar i desenvolupar APIs eficients i segures. En el següent tema, explorarem els codis d'estat HTTP, que són igualment importants per comunicar l'estat de les peticions i respostes.
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