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 Obtenir dades
POST Crea un nou recurs No Enviar dades per crear un recurs
PUT Actualitza o crea un recurs Actualitzar dades
DELETE Elimina un recurs Eliminar dades
PATCH Actualitza parcialment un recurs Actualitzar parcialment dades

Exercicis Pràctics

Exercici 1: Crear un nou usuari

  1. Utilitza el mètode POST per crear un nou usuari amb les següents dades:

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

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

  1. Utilitza el mètode DELETE per eliminar l'usuari amb ID 125.

Solució:

DELETE /users/125 HTTP/1.1
Host: api.example.com

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.

© Copyright 2024. Tots els drets reservats