REST (Representational State Transfer) utiliza el protocolo http y establece unas directrices:

  1. Las URL representan el acceso a los recursos (endpoints)
  2. Las acciones se expresan por el método HTTP (GET, POST, PUT, DELETE)
  3. Posibilidad de pasar parámetro por query-string o cabeceras ( /users?page=2&limit=20)
  4. Formato de los mensajes de entrada y salida en lenguajes conocidos: JSON o XML.
  5. Pueden ser cacheables y stateless
  6. Uso de HTTPS y OAuth para seguridad

Estilos de API Web

SOAP, REST, GraphQL y gRPC

El atractivo de REST está en la facilidad de uso (como consumidor, desarrollador, etc.), pues resulta muy sencillo consumirla desde una aplicación web en prácticamente cualquier tecnología. Incluso desde el propio navegador web.

Lenguajes de especificación

El formato más extendido de especificación de API es OpenAPI/Swagger. En él se pueden recoger los distintos endpoints, configuración, seguridad, etc... de una API REST.

Swagger, normalmente escrito en JSON o YAML, es el equivalente a los WSDL en SOAP.

Diseño

Actualmente no existe un acuerdo de cuál es la forma estándar de modelar una REST API y eso se observa al compararlas.

Verbos HTTP y endpoints con colecciones y recursos

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7f8ac297-47f2-4db6-afd9-f4c9ae42c230/Untitled.png