API Rest
Def.:
-
Estilo de arquitectura de software para diseñar APIs
-
Opción más utilizada a día de hoy para interconectar sistemas mediante HTTP
Métodos:
-
GET
-
seguro (no realiza modificaciones en el estado de ningún recurso)
-
idempotente (múltiples llamadas no modifican el estado de los recursos)
-
POST
-
no seguro (realiza modificaciones en el estado)
-
no idempotente (múltiples llamadas modifican el estado de los recursos)
-
PUT (modificar todo el contenido de un recurso. Ej.:
{age, name, email}
)
-
no seguro: realiza modificaciones en el estado
-
idempotente: múltiples llamadas no modifican el estado de los recursos, ya que
se modifica el contenido en la primera llamada pero en las demás el cambio ya se
habría producido y el contenido sería el mismo que en las llamadas anteriores
-
PATCH (modificaciones parciales de un recurso. Ej.:
{age: 26}
)
-
no seguro: realiza modificaciones en el estado del recurso (cambia el valor de age en este caso)
-
no idempotente: múltiples llamadas modifican el estado de los recursos, ya que no se puede asegurar que no se alteren otras cosas tras esa modificación parcial (ver documentación de HTTP)
-
DELETE
-
no seguro: realiza modificaciones en el estado, eliminando algo que antes existía
-
idempotente: múltiples llamadas no modifican el estado de los recursos, ya que una vez se ha borrado el elemento, por más que se haga la llamada no va a alterar el recurso (se obtendría un 404 tras la llamada)
En una uri (endpoint), no es correcto que aparezcan verbos (ej. /pedidos/actualizarPedido/{id}), ya que el verbo (en este caso "actualizar") ya lo establece el método HTTP (aquí sería PUT o PATCH).
Características:
-
No hay estado --> En cada petición hay que, por ejemplo, autenticarse (mediante tokens, por
ej.), no se guarda la info en un estado
-
Es un estilo arquitectónico
-
Una empresa puede no adoptar al 100% el estilo y modificar cosas, por ej.:
-
modificaciones parciales con PUT
-
hacer un GET con un body
-
etc.
-
Si se cumple todo bien, se denomina RESTFUL
-
Entradas y salidas de las llamadas a la API: codificadas mediante JSON
-
Existen códigos de error
-
Informativos (100-199)
-
Respuesta OK (200-299)
-
Redirección (300-399)
-
Errores por parte del cliente (400-499)
-
Errores por parte del servidor (500-599)
-
Cómo consumir API Rest
-
De forma programática
-
Manualmente (ej. Postman)