Desarrollo de API REST: ¿qué es el contrato primero?

En este artículo, veremos un enfoque para desarrollar una API REST basada en contratos.

Al desarrollar una buena API REST, es importante tener excelentes microservicios. El enfoque Contract First lo ayudará a desarrollar un buen contrato antes de que se implemente. Sin embargo, ¡no es tan simple!


Aprenderás


  • ¿Qué es un enfoque Contract First para desarrollar una API REST?
  • ¿Cuáles son los beneficios del enfoque Contract First?
  • ¿Cuáles son las desventajas del enfoque Contract First?
  • ¿Cuándo utiliza el enfoque Contract First?

API REST


Este es el tercer artículo de una serie de artículos sobre la API REST:


Concepto de servicios web


Existen varios tipos de servicios web, incluidos REST y SOAP. Para cada servicio hay:

  • El proveedor de servicios que brinda el servicio.
  • El consumidor del servicio que lo utiliza.

El consumidor debe conocer los detalles del servicio prestado. Por esta razón, se debe celebrar un contrato. El contrato de servicio define:

  • ¿Cuáles son los entresijos del servicio?
  • ¿En qué URL está disponible el servicio?
  • ¿Cómo enviar una autorización?

Primer acercamiento del contrato


Con el enfoque " Contrato primero " (contrato primero), primero define el contrato y luego implementa el servicio. Veamos un ejemplo.

Wsdl


Primero veamos el uso de WSDL, un lenguaje de definición de servicios web. Aquí hay un ejemplo de uso:



WSDL se usa comúnmente con los servicios web SOAP / XML. En este caso, generalmente define:



¿Qué se entiende por contrato?


Cuando comenzamos por concluir un contrato, definimos el WSDL y luego lo compartimos con nuestro consumidor. Todo esto puede suceder incluso antes de presentar el servicio y ponerlo a disposición.

El contrato le dice al consumidor cómo se espera el intercambio de solicitudes y respuestas. Una vez que se concluye un contrato, un proveedor de servicios puede trabajar para proporcionar un servicio consistente con el contrato. Un consumidor de servicios puede trabajar en el desarrollo de una aplicación para su uso.

Beneficios del contrato Primer enfoque


Los equipos pueden desarrollarse en paralelo.


Dado que la codificación se basa en contratos, los proveedores de servicios y los grupos de consumidores comprenden claramente el enfoque y los detalles de la comunicación. Por lo tanto, el desarrollo puede ocurrir simultáneamente.

Los equipos saben qué esperar.


Dado que la codificación se basa en un contrato, los equipos de productores y consumidores tienen una idea de las expectativas de cada uno. Como resultado, si las pruebas intergrupales no son posibles debido a las diferentes tasas de desarrollo, se puede usar un software auxiliar para modelar el comportamiento de la otra parte en función del contrato.

Compatibilidad multiplataforma


Dado que los parámetros del servicio dependen solo del contrato, la estructura de software real utilizada para desarrollar el servicio no importa mucho. El proveedor de servicios y el consumidor de servicios pueden usar diferentes tecnologías.

Permite la reutilización de esquemas.


Los esquemas que se utilizan para definir un contrato de servicio están bien definidos en el WSDL. Por lo tanto, si partes de los servicios se repiten en otros servicios, los esquemas correspondientes también se pueden reutilizar.

Desventajas del contrato Primer enfoque


Se requieren costos iniciales adicionales


La mayoría de estos costos se centrarán en un acuerdo de servicio. Debe asegurarse de que el contrato esté claramente definido y no cambie con mucha frecuencia.

Mecanismo de renovación e intercambio de contratos.


Durante el período de uso del servicio, si actualiza el contrato, afecta a todas las demás partes interesadas. Por lo tanto, debe haber un mecanismo apropiado para transferir los cambios a diferentes consumidores.

Sobre este tema hay un video del autor.

Resumen


En este artículo, discutimos el enfoque Contract First en el contexto de los servicios web.

Lectura adicional


Desarrollo rápido de aplicaciones con primer enfoque de API utilizando el generador de API abierta

Implementación de una metodología de diseño API-First

Source: https://habr.com/ru/post/483206/


All Articles