Acceso a Datos

2º DAM - Curso 2021-2022

User Tools

Site Tools


apuntes:http

Diseño de APIs: Protocolo HTTP

Métodos HTTP

Métodos HTTP más utilizados

En el protoclo HTTP, el método define el tipo de operación que se va a realizar. De entre los métodos existentes en el protocolo, los más utilizados son los que se corresponden con las operaciones CRUD:

Método Cuándo usar
GET Operación de consulta
POST Operación de registro
DELETE Operación de borrado
PUT Operación de modificación completa
PATCH Operación de modificación parcial

Modelado de Recursos/URIs

Cada una de los métodos que desarrollamos en el proyecto de nuestra API se debe mapear con una URL determinada (a través de las anotaciones @GetMapping, @PostMapping, @DeleteMapping, @PatchMapping o @PutMapping).

Con el objetivo de definir una colección uniforme de operaciones o endpoints, es muy importante perder algo de tiempo para pensar y diseñar cómo deben de ser estas URLs.

El primer paso es tener en cuenta que el método HTTP seleccionado actuará como verbo y que la URL deberá definir al recurso sobre el que ese 'verbo' actúa (luego veremos que no todas las operaciones encajan en este modelo).

A continuación se muestran algunas URLs a modo de ejemplo:

Operaciones de consulta

  • GET /products
  • GET /products?category=food
  • GET /products?category=food&price=100
  • GET /product/{productId}
  • GET /user/{userId}/orders
  • GET /user/{userId}/order/{orderId}

Operaciones de registro

  • POST /products
  • POST /user/{userId}/orders

Operaciones de borrado

  • DELETE /product/{productId}
  • DELETE /user/{userId}/order/{orderId}

Operaciones de modificación (registro completo)

  • PUT /product/{productId}
  • PUT /user/{userId}/order/{orderId}

Operaciones de modificación parcial

  • PATCH /product/{productId}
  • PATCH /user/{userId}/order/{orderId}

Códigos de estado

Códigos de estado HTTP

Los códigos de estado proporcionan al cliente información global sobre el resultado que se devuelve tras ejecutar la petición.

Existen 5 categorias:

  • 1XX Información Son el grupo de códigos que proporcionan información a nivel de protocolo
  • 2XX Éxito Se utilizan para indicar al cliente que la petición se ha realizado con éxito
  • 3XX Redirección Sirven para indicar al cliente que debe realizar alguna acción adicional para completar la petición
  • 4XX Error en el cliente Se utilizan para indicarle al cliente que ha cometido algún tipo de error al realizar la petición
  • 5XX Error en el servidor Indican que se ha producido algún tipo de error en el servidor mientra se ejecutaba la petición

Códigos de estado HTTP más utilizados

Código Estado Cuándo usar
200 OK Ok en GET,PUT,PATCH
201 Created Ok en POST (registro)
204 Not Content Ok sin devolver datos
400 Bad Request Error de invocación del cliente
401 Unauthorized Usuario/Contraseña incorrectos
403 Forbidden Sin privilegios
404 Not Found Recurso no encontrado (especificado en la entrada)
500 Internal Server Error Error en backend

Ejercicios

  1. ¿Qué código de estado HTTP devolverá una operación que devuelve la lista de usuarios conectados cuando no haya ninguno? ¿Y qué información devolverá en la respuesta?
  2. ¿Qué código de estado HTTP debe devolver una operación que registra un nuevo producto en la base de datos? ¿Debe devolver algo como respuesta?
  3. ¿Qué código de estado HTTP y respuesta devolverá una operación que utiliza el método HTTP DELETE?
  4. ¿Qué código de respuesta HTTP devolverá una operación que sirve para conocer la información de un producto determinado? ¿Y si no lo encuentra?

© 2022-2022 Santiago Faci

apuntes/http.txt · Last modified: 28/02/2022 21:02 by Santiago Faci