Creando un api
Creando una API
Términos importantes que hay que conocer
- API
- REST
- VERBOS HTTP
- RECURSOS
- CÓDIGOS DE ESTADO
API
Una Interfez de programación de aplicaciones Son programas que permiten que otros programas se conecten con él para obtener recursos.
Para ello establecen una interfaz para que puedan conectarse a él.
Por un lado una aplicación solicita datos (request) , y la API se los devuelve (response) .
Application Programming Interface
API Programa que recibe solicitudes y envía respuesta a otros programas
REST
REpresentational State Transfer ( Transferencia de Estado representacional)
REST
REST
en seis principios fundamentales
Estos principios indican cómo deben representarse los datos que se desean transferir , proporcionando una guía para el desarrollo de sistemas web eficientes y bien estructurados.
PRINCIPIOS QUE DEFINEN LA ARQUITECTURA DE REST
REST se basa en una serie de principios y restricciones que definen su arquitectura. A continuación, se resumen las seis guías o restricciones principales de REST:
Arquitectura Cliente-Servidor:
- La arquitectura cliente-servidor separa la interfaz de usuario y la lógica del usuario (cliente) de la lógica del servidor.
- Mejora la portabilidad del cliente y la escalabilidad del servidor, ya que cada parte puede evolucionar independientemente.
- O sea que el API y el CLIENTE son dos entes independientes
Sin Estado (Stateless):
- Cada solicitud del cliente al servidor debe contener toda la información necesaria para entender y procesar la solicitud.
- El servidor no debe almacenar el estado del cliente entre solicitudes; cada solicitud desde un cliente se trata de forma independiente. (Ni cookies ni sesiones)
- El estado de la sesión del usuario se mantiene en el cliente (usando tokens)
Cacheable (Almacenamiento en Caché):
- Las respuestas del servidor deben indicar si se pueden almacenar en caché o no.
- La caché puede mejorar la eficiencia y la escalabilidad al reducir la necesidad de recuperar la misma información una y otra vez.
Interfaz Uniforme:
-
Define una interfaz uniforme entre los componentes, lo que facilita la independencia y la evolución de cada componente.
-
La interfaz uniforme se compone de cuatro restricciones:
- Identificación de Recursos: Cada recurso (información o servicio) se identifica mediante un URI (Uniform Resource Identifier).
- Manipulación de Recursos a través de Representaciones: Los recursos pueden ser representados y manipulados en diferentes formatos, como JSON o XML.
- Mensajes Autodescriptivos: Cada mensaje incluye suficiente información para describir cómo procesar la solicitud.
- HATEOAS (Hypertext As The Engine Of Application State): La aplicación es conducida por hipermedios proporcionados dinámicamente a través de aplicaciones de navegadores, es decir
el servidor debe de facilitar información que nos diga cómo navegar por la API, no solo facilitar datso
Sistema de Capas (Layered System):
- La arquitectura se puede organizar en capas jerárquicas.
- Cada capa realiza una funcionalidad específica y solo interactúa directamente con las capas adyacentes.
Codigo Bajo Demanda (Code on Demand) [opcional]:
- Los clientes pueden descargar y ejecutar código (como applets o scripts) desde el servidor.
- Esta restricción es opcional y no se utiliza comúnmente en aplicaciones RESTful.
Estas restricciones definen los principios clave de REST y proporcionan una guía para desarrollar sistemas web eficientes, escalables y bien estructurados.
Verbos HTTP
Si la API funciona con el protocolo HTTP, entonces establos hablando de una API RestFull HTTP sabemos que es un protocolo para transferir texto a través de internet
Recurso
Un recurso es información que está en el servidor a la cual vamos a poder acceder a través de una url ej: http://localhost:8000/alumnos
alumnos es un recurso