Tutorial de API RESTful

En el desarrollo web moderno, la API RESTful se ha convertido en la forma estándar de comunicación entre aplicaciones.

REST (Representational State Transfer, Transferencia de Estado Representacional) es un estilo de arquitectura de software propuesto por el Dr. Roy Fielding en el año 2000.

REST define un conjunto de restricciones y principios para crear servicios web escalables y débilmente acoplados.

Una API RESTful es una API diseñada siguiendo el estilo de arquitectura REST. Utiliza las características del protocolo HTTP, localiza recursos mediante URL y describe operaciones con métodos HTTP (GET, POST, etc.), logrando así la interacción entre el cliente y el servidor.


¿Quién debería leer este tutorial?

Ya seas un desarrollador frontend que necesita interactuar con APIs de backend, o un desarrollador backend que necesita diseñar interfaces de API, dominar la API RESTful es una habilidad imprescindible.


¿Características de la API RESTful?

Características clave:

  • Sin estado: Cada solicitud contiene toda la información necesaria para su procesamiento.
  • Interfaz uniforme: Se utilizan métodos HTTP estándar para realizar operaciones.
  • Orientado a recursos: Todo el contenido se abstrae como recursos.
  • Cacheable: La respuesta debe indicar claramente si se puede almacenar en caché.

Principios principales de la API RESTful

1. Recursos y URI

En REST, todas las cosas se abstraen como recursos, y cada recurso tiene un identificador único (URI).

Especificaciones de diseño de URI:

  • Usar sustantivos en lugar de verbos para representar recursos.
  • Usar formas plurales para nombrar colecciones.
  • Usar letras minúsculas y guiones (-).
  • Evitar extensiones de archivo.

Ejemplo:

/users          # 用户集合
/users/123      # ID为123的用户
/users/123/orders  # 用户123的订单集合

2. Uso de métodos HTTP

Las API RESTful aprovechan al máximo la semántica de los métodos HTTP:

Método HTTP Descripción Idempotencia Seguridad
GET Obtener recurso Sí Sí
POST Crear recurso no no
PUT Actualizar recurso por completo Sí no
PATCH Actualizar recurso parcialmente no no
DELETE Eliminar recurso Sí no

3. Sin estado

Cada solicitud debe contener toda la información necesaria para su procesamiento; el servidor no guarda el estado del cliente. Esto hace que la API sea fácil de escalar y de equilibrar la carga.

4. Formatos de representación

Los recursos pueden tener múltiples formatos de representación (como JSON, XML); el cliente especifica el formato deseado mediante el encabezado Accept.

Otras extensiones