BLOG

Dominando la arquitectura de API: Fundamentos de las API

Miniatura de Byron McNaught
Byron McNaught
Publicado el 5 de diciembre de 2022


Las interfaces de programación de aplicação , o API, están de moda.

Alegría

Si bien las API no son nuevas, fenómenos recientes como la transformación digital acelerada durante la COVID-19, las integraciones de software mejoradas y los esfuerzos por reestructurar las aplicaciones heredadas para la nube han resultado en una proliferación continua de API , lo que afecta la gestión, la seguridad e incluso las decisiones arquitectónicas que toman las organizaciones para tener éxito en la economía digital moderna.

Las API, en esencia, pueden representar el auge de las máquinas. Excepto que, afortunadamente, los humanos todavía tienen control sobre su construcción, gestión y seguridad (al menos por ahora).

Robot

Básicamente, en el lenguaje “API” (por así decirlo), el consumidor generalmente envía consultas o solicitudes al productor , a través de interfaces unificadas que consisten en varios estándares, esquemas y especificaciones.

Por ejemplo, el Servicio Meteorológico Nacional (el productor ) contiene datos meteorológicos diarios. La aplicación meteorológica de su teléfono (el consumidor ) llama, o más específicamente, consulta, a este sistema a través de la API REST de WeatherKit y luego presenta los datos a través de la interfaz de usuario de la aplicación meteorológica. Si bien este es un ejemplo simple de una aplicación popular utilizada por millones de usuarios , cabe destacar que la comunicación de máquina a máquina representa la mayor parte del tráfico de las experiencias digitales modernas y está impulsada por API.

León

Hay una serie de beneficios tecnológicos que se traducen en valor comercial proporcionado por las API:

Beneficio tecnológico Valor empresarial
Abstraer la implementación subyacente de una aplicación web. Las organizaciones pueden implementar rápidamente aplicaciones móviles y arquitecturas basadas en microservicios.
Especifique tipos para que los desarrolladores puedan implementar consumidores de API a través de herramientas. Los líderes pueden optimizar los procesos de desarrollo para facilitar un mejor tiempo de comercialización.
Definir semántica/comportamiento para modelar un intercambio de información consistente y predecible. Los socios pueden desarrollar y monetizar integraciones de terceros.

Cuando se trata de la implementación de API, hay una serie de consideraciones. Específicamente, con respecto al modelado, control de versiones y pruebas de contratos, que ayudan a desacoplar las dependencias y garantizar la interoperabilidad durante el diseño, la construcción y el mantenimiento.

Consideración Descripción Beneficio
Modelado La semántica o comportamiento para representar y estructurar el intercambio de información. Gestión optimizada de arquitecturas distribuidas.
Control de versiones Estrategias de gobernanza para el lanzamiento y el mantenimiento durante todo el ciclo de vida de la API. Máxima usabilidad y compatibilidad con versiones anteriores.
Pruebas de contrato Interacción definida y respuestas esperadas entre el consumidor y el productor. Interacciones deterministas con integraciones comerciales de terceros.

No existe una forma correcta o incorrecta de crear, gestionar y proteger una API. De hecho, cuando las API comenzaron a proliferar, se hizo necesario estandarizar su forma y estructura para poder usarlas a gran escala. Ingrese a la Iniciativa OpenAPI y la Especificación OpenAPI resultante (OAS). Swagger fue la implementación de referencia original de la especificación OpenAPI, y la mayoría de las herramientas ahora han convergido en el uso de OpenAPI, que aún mantiene su estilo (¡JA!).

De hecho, una API se puede construir utilizando una variedad de estándares, esquemas y especificaciones. Por ejemplo, una presentación RESTful , un servicio gRPC y conexiones a un esquema GraphQL .

Implementación INFORMACIÓN GENERAL Ventajas Cuándo utilizarlo


La transferencia de estado de representación (REST) proporciona un modelo arquitectónico ligero para describir interfaces unificadas, que se aplica más comúnmente utilizando HTTP como protocolo de transporte subyacente.

REST es por lejos la implementación más ampliamente utilizada de arquitecturas basadas en API.

Informe sobre el estado de la API de Postman 2022

  • REST tiene algunas reglas muy básicas, con bajas barreras de entrada y un modelo de dominio sólido, lo que hace que su implementación sea relativamente sencilla.
  • Como sistema en capas, se abstrae la complejidad de los sistemas detrás de la interfaz REST. Por ejemplo, el consumidor no es consciente de que está interactuando con un sistema de base de datos detrás de un servicio web.
  • REST tiene soporte flexible para tipos de contenido (incluidos JSON y YAML).
  • Cuando la especificación OpenAPI es suficiente para compartir la forma y la estructura de las API con los consumidores.
  • Cuando es necesario determinar el almacenamiento en caché de forma dinámica en función de los encabezados HTTP, ya que las solicitudes del productor al consumidor no tienen estado de manera predeterminada.
  • Al ampliar un modelo de recursos para una única API proporcionada por el productor o al ofrecer múltiples API en la misma URL base mediante API Gateways.


GraphQL es un lenguaje de consulta y manipulación de datos de código abierto para API y un entorno de ejecución para realizar dichas consultas con datos existentes (desarrollado por Facebook y ahora parte de la Fundación Linux).
  • Proporciona un lenguaje de consulta para realizar consultas en múltiples fuentes. 
  • Permite a los clientes solicitar exactamente los campos requeridos, incluidos campos que abarcan múltiples API, lo que reduce el tiempo de carga inicial.
  • El lenguaje de esquema especifica los tipos en las API individuales y cómo se combinan las API, lo que proporciona la capacidad de proporcionar una única versión en todas las API, lo que simplifica la gestión de versiones.
  • Como una tecnología complementaria colocada sobre los sistemas heredados existentes para abstraer la complejidad. 
  • Cuando un consumidor de API requiere acceso uniforme, filtrado y consultas sobre una amplia gama de servicios interconectados.
  • Con dispositivos móviles, que están limitados por pantallas más pequeñas y disponibilidad de red.


gRPC es un marco de trabajo de llamadas a procedimientos remotos (RPC) moderno, de código abierto y de alto rendimiento, administrado por la Fundación Linux.
  • Altamente eficiente y confiable mediante el uso de HTTP/2, buffers de protocolo livianos, cargas útiles serializadas e implementaciones con estado.
  • Soporte conectable para equilibrio de carga, seguimiento, verificación del estado y autenticación.
  • Alta funcionalidad de interfaz e interoperabilidad de mensajes con amplio soporte de herramientas para todos los idiomas. 
  • Para la última milla de computación distribuida para conectar dispositivos, aplicaciones móviles y navegadores a microservicios de back-end y para aplicaciones multiplataforma con interacción de dispositivos móviles a computadoras de escritorio/IoT.
  • Para el tráfico entre contenedores ("Este-Oeste").
  • Con interfaces externas ("Norte-Sur") que requieren streaming, y para aplicaciones de streaming como chat, finanzas, noticias. 

Con esa introducción a los fundamentos de las API, exploraremos cómo crear, administrar y proteger la arquitectura de las API en publicaciones posteriores antes de unir todo mediante la reorganización de una aplicación heredada para la nube.

Protección de aplicaciones

¿Quieres salir adelante? Descargue el libro electrónico hoy:

Dominando la arquitectura de API | Libro electrónico de O'Reilly