En este artículo, continuaremos nuestra introducción al desarrollo de la API REST y veremos el enfoque de Código Primero.
Desarrollar una buena API REST es importante para tener buenos microservicios. El enfoque de Código Primero se enfoca en generar un contrato a partir del código. ¿Es este el mejor enfoque posible?

Aprenderás
- ¿Cuál es el enfoque de Código Primero para desarrollar una API REST?
- ¿Cuáles son los beneficios del enfoque de Código Primero?
- ¿Cuáles son las desventajas del enfoque de Código Primero?
- ¿Cuándo utiliza el enfoque de Código Primero?
API REST
Este es el cuarto artículo de una serie de artículos sobre la API REST:
¿Cuál es el enfoque de Código Primero?
Siempre que desarrolle un servicio, como una API REST o una API SOAP, puede elegir uno de dos enfoques:
- Code First y generar un contrato a partir del código
- Contract First y desarrollo de código basado en contratos
Comencemos con un ejemplo rápido para Code First.
Ejemplo de API REST del primer código de arranque de Spring
Estamos desarrollando un servicio web RESTful utilizando Spring Boot Framework para generar la API. Por ejemplo, en la API retrieveAllUsers (), abrimos el URI "
/ users " y
devolvemos todos los usuarios (recurso
/ usuarios ),
llamando al método de servicio.
Cuando vamos a esta URL, devolvemos a todos los usuarios:

Otros métodos de servicio se definen de manera similar, cada uno de los cuales tiene su propio URI. En este ejemplo, tomamos el código y generamos documentación a partir de él. Esta documentación describe cómo el usuario puede usar el servicio. Para hacer esto, utilizamos el formato de documentación Swagger:

Swagger nos permite generar documentación a partir del código. Por ejemplo, esto es lo que genera Swagger para solicitar a todos los usuarios:

Muestra el tipo de mensaje de respuesta que recibimos y el estado de respuesta que lo acompaña. Incluso puede llamar a este servicio desde Swagger para obtener una respuesta:

También puede enviar una solicitud
POST a "
/ users ":

Swagger nos dirá cómo estructurar el mensaje de solicitud y especificar los formatos de campo individuales dentro de él. También le dirá el tipo de respuesta que recibirá, junto con el código de respuesta. Lo que Swagger genera a partir del código se llama
contrato .
Beneficios del Código Primero
Las principales ventajas de este enfoque:
- Contratos con un esfuerzo mínimo : generar un contrato no requiere un esfuerzo adicional. Esto es solo un subproducto del desarrollo del servicio, ya que puede generarse automáticamente a partir del código.
- Código y sincronización del contrato : dado que el contrato se genera a partir del código, siempre se sincronizan entre sí
Desventajas de Code First
Las desventajas de este enfoque son las siguientes:
Sin desarrollo paralelo
Un productor de servicios y consumidores de servicios no pueden desarrollarse en paralelo. Primero necesita desarrollar un servicio, luego generar un contrato, y solo después de eso puede escribir un código de consumidor que se adhiera al contrato. Sin entender el contrato, el consumidor no puede desarrollarse.
Ningún gol para los equipos.
Dado que el contrato no puede conocerse antes de que se desarrolle el servicio, no hay ningún propósito para varios interesados en el desarrollo. Por lo tanto, hay muchas posibilidades de que las direcciones se desvíen y se realicen cambios innecesarios, lo que conducirá a una pérdida de esfuerzo.
Sin compatibilidad multiplataforma
En algunas plataformas más antiguas, no es tan fácil generar un contrato a partir del código. Como resultado de esto, a menudo se produce incompatibilidad entre plataformas para los contratos generados.
Sobre este tema hay un
video del autor.
Resumen
En este artículo, exploramos el enfoque de Code First para construir una API REST. Aunque el enfoque basado en código es efectivo desde el punto de vista del desarrollador, enfrenta serios problemas cuando se trata del desarrollo conjunto de un proveedor y un consumidor.
Lectura adicional
Desarrollo de API: ¿Diseño primero o Código primero?Cómo desarrollar un servicio web RESTful en la API web ASP.NET