API - GEKO
Java – Spring Boot
Una interfaz hecha para desarrolladores que expone nuestros
recursos de una forma entendible y accesible para otros con
autorización Correspondiente a nuestra Información.
14 DE FEBRERO DE 2022
CRUZ ROJA C. SECCIONAL SANTANDER
Resumen
Es una interfaz de programación de aplicaciones (API o API web) que se ajusta a
los límites de la arquitectura REST y permite la interacción con los servicios web
de RESTfull, donde existe una llamada de datos y una respuesta, utilizando el
formato de Intercambio de datos entre aplicaciones o Sitios Web (JSON, XML).
ejemplo:
Realizaremos un consumo de API desde la aplicación GekoStudent, Donde por medio la
API accederemos de forma publica en cualquier Lugar con su respectivo esquema de
seguridad (User, password, token).
donde obtendremos todos los datos de estudiantes.
hacemos la petición al servidor por medio de la API
([Link]
Servidor – API REST
Request
GekoStudent – App 1
Answer
Request
Answer
GekoStudent – App 2
Respuesta de esta solicitud en formato JSON:
donde el primer parámetro es Student y el segundo una variable con la paginación.
{
“students”: {
{
“stu_id”: 1,
“stu_name”: “student1”,
“stu_email” : “email12@[Link]”
},
{
“stu_id”: 1,
“stu_name”: “student1”,
“stu_email” : “email12@[Link]”
}
}
Objetivos
1. Intercambio de datos entre empresas o instituciones externas que necesitan
acceder a nuestra información, con el fin de consolidar toda la información y
obtener un solo informe.
2. Ofrecer datos a aplicaciones que se ejecutan en un móvil.
3. Ofrecer datos a otros desarrolladores con un formato estándar.
4. Ofrecer datos de nuestra propia web o app.
Con esta implementación podemos decir que podremos compartir y crear nuevos recursos en
compañía con otras aplicaciones que estén ejecutándose en nuestra sede, ejemplo.
el sistema de Geo localización que tenemos para localizar cada vehículo y el sistema de
mantenimiento de GekoLogistica donde llevamos el control de mantenimiento y solicitudes de
mantenimiento, donde podemos hacer intercambio de datos y solo manejar una sola aplicación,
con dicha conexión.
en esta imagen podemos ver como varias empresas consumen los datos de la API.
implementando así el control de simultaneidad.
Concurrency Control
Servidor – API REST
Empresa 1
Empresa 2
HTTP Verbos
Debemos utilizar los HTTP verbs de forma adecuada para cuidar la semántica.
GET: Obtener datos. Ej: GET /geko/students? Pag=1234
PUT: Actualizar datos. Ej.: PUT /geko/inventario? Id=1
POST: Crear un nuevo recurso. Ej.: POST /geko/inventario
DELETE: Borrar el recurso. Ej: DELETE /geko/students? id=1
Llamadas al API
Las llamadas al API se implementan como peticiones HTTP, en las que:
La URL representa el recurso
[Link]
El método (HTTP Verbs) representa la operación:
GET [Link]
El código de estado HTTP representa el resultado:
200 OK HTTP/1.1
404 NOT FOUND HTTP/1.1
Creación de recursos
La URL estará “abierta” (el recurso todavía no existe y por tanto no tiene id)
El método debe ser POST
[Link]
Respuesta a la creación de recursos
Resultados posibles:
403 (Acceso prohibido)
400 (petición incorrecta, [Link]. falta un campo o su valor no es válido)
500 (Error del lado del servidor al intentar crear el recurso, [Link]. se ha caído la BD)
201 (Recurso creado correctamente)
Actualización de recursos
Método PUT
Según la ortodoxia REST, actualizar significaría cambiar TODOS los datos
PATCH es un nuevo método estándar HTTP (2010) pensado para cambiar solo
ciertos datos. Muchos framework de programación REST todavía no lo soportan
Resultados posibles
Errores ya vistos con POST
201 (Recurso creado, cuando le pasamos el id deseado al servidor)
200 (Recurso modificado correctamente)
Eliminar recursos
Método DELETE
Algunos resultados posibles:
200 OK
404 Not found
500 Server error
Tras ejecutar el DELETE con éxito, las siguientes peticiones GET a la URL del
recurso deberían devolver 404
Arquitectura REST
Reglas de una arquitectura REST
Interfaz uniforme
Peticiones sin estado
Cacheable
Separación de cliente y servidor
Sistema de Capas
Código bajo demanda (opcional)
Server
Los requerimientos principales para poner en funcionamiento seria obtener los paquetes
Tomcat en el servidor y JPA para los datos. o implementación de java en el servidor para
proyectos Sprint Boot.
A2 HOSTING
Alojamiento java y Spring Boot (Servidor vps).
AWS: (para uso exclusive de grandes cantidades de información) (opcional)
AWS SDK para Java simplifica el uso de los servicios de AWS al proporcionar un conjunto
de bibliotecas que son consistentes y familiares para los desarrolladores de Java. Brinda
soporte para las consideraciones del ciclo de vida de la API.
Compatibilidad con HTTP/2 y capa HTTP conectable
Las nuevas interfaces de programación aprovechan perfectamente las capacidades de
HTTP/2 y ofrecen nuevas formas de crear aplicaciones.
Google App Engine: (opcional)