uso de servidores simulados a lo largo del ciclo de vida de la API

APIGit

2023-04-25

The-Many-Ways-to-Use-Mock-Servers

Uso de servidores simulados a lo largo del ciclo de vida de la API

Los servidores simulados son una solución útil para los diversos desafíos inesperados que surgen a lo largo del proceso de desarrollo. La integración con varias API puede llevar mucho tiempo, ya que las personas dedican un promedio del 16 % de su tiempo a la depuración, en comparación con solo el 10 % en su estado ideal. Las dependencias externas y los esfuerzos simultáneos del equipo también pueden causar retrasos y frustraciones. Sin embargo, mediante el uso de servidores simulados, los desarrolladores pueden minimizar estos contratiempos e interrupciones, lo que los convierte en una herramienta valiosa durante todo el ciclo de vida del desarrollo.

¿Qué es exactamente un servidor simulado?

Para aclarar, un servidor simulado es una herramienta disponible en la plataforma Apigit que permite a los desarrolladores simular solicitudes y respuestas de API. Cuando se envía una solicitud al servidor simulado, hace coincidir la configuración de la solicitud con los ejemplos guardados y proporciona una respuesta con los datos correspondientes.

Los servidores simulados proporcionan una forma de simular las respuestas de una API en un entorno de producción, sin necesidad de que los desarrolladores escriban ningún código. Mediante el uso de servidores simulados, se acorta el ciclo de retroalimentación en el desarrollo de la infraestructura de API, lo que permite iteraciones y desarrollos más rápidos.

En esta publicación de blog, analizaremos los beneficios de usar servidores simulados y cómo pueden mejorar su flujo de trabajo de desarrollo. Apigit proporciona varios métodos para crear un servidor simulado, que exploraremos en detalle.

Uso de servidores simulados para colaboración

En la mayoría de los casos, los proyectos de desarrollo involucran a múltiples equipos e individuos que trabajan en diferentes aspectos del proyecto simultáneamente. Esto incluye desarrolladores frontend, desarrolladores backend, ingenieros de control de calidad y otros especialistas, incluso en proyectos de menor escala. Para maximizar la productividad y la eficiencia, es común que los equipos trabajen en diferentes partes del proyecto al mismo tiempo.

Los servidores simulados son una herramienta versátil que puede ayudar a mantener la eficiencia durante todo el proceso de desarrollo, lo que beneficia tanto a los productores de API como a los consumidores. Se pueden utilizar en varias etapas del ciclo de vida de desarrollo de la API. Por ejemplo, cuando el equipo de front-end desea integrar datos del back-end o del servidor, se pueden usar servidores simulados para simular puntos finales de API que aún no están completamente configurados o funcionales. Esto garantiza que la ingeniería frontend sea precisa y posible incluso en ausencia de una funcionalidad API completa.

Los servidores simulados se pueden utilizar en una etapa temprana del proceso de desarrollo, como durante la fase de diseño. En lugar de esperar a que se desarrollen e implementen los puntos finales de la API, Apigit permite a los desarrolladores crear un servidor simulado a partir de una especificación de API, que puede simular las respuestas del servidor para usar en la interfaz. Esto permite a los desarrolladores de UI comenzar de inmediato consultando el servidor simulado y trabajando con las respuestas esperadas. Una vez que la API real está lista para la producción, los desarrolladores pueden intercambiar la URL de las respuestas de la API simulada con la URL de la API real (junto con la autorización necesaria).

Pruebe de manera eficiente burlándose de las dependencias externas

Las API y los proyectos de desarrollo no son entidades aisladas, y el desarrollo de back-end a menudo requiere integración con servicios externos. Sin embargo, las llamadas a servidores externos están fuera de su control y pueden producir resultados impredecibles y poco confiables, como la devolución de errores 503 Servicio no disponible. Como se mencionó anteriormente, la depuración de problemas de API puede consumir hasta un 16 % del tiempo total de desarrollo. Cuando un proyecto depende de varias API externas, es posible encontrar problemas para acceder a las API que fallan, lo que puede dificultar el progreso. Sin embargo, estos problemas no tienen por qué detener por completo el desarrollo.

Las llamadas API externas suelen ser componentes críticos de los flujos de trabajo de desarrollo, pero depender de servicios externos durante el desarrollo puede ser riesgoso. Para mitigar este riesgo, se pueden usar servidores simulados para simular la experiencia de acceder a un servidor externo y devolver las respuestas esperadas. Esto es particularmente útil en situaciones donde una llamada a un servidor externo o API es un componente crucial del proceso de desarrollo.

En este escenario, los servidores simulados ayudan en la fase de prueba y desarrollo local del ciclo de vida del desarrollo. Exploremos un ejemplo teórico:

Suponga que está desarrollando una aplicación de comercio electrónico con un flujo de pedidos, donde su API se combina con un servicio de envío que necesita estar sincronizado. Específicamente, cuando se agrega un artículo al carrito en la aplicación de comercio electrónico, también debe agregarse al carrito para el servicio de envío, de modo que el servicio de envío pueda realizar un seguimiento de lo que se debe enviar. Esto significa que cada solicitud realizada a su API también activará una solicitud a la API del servicio de envío.

A visual example of testing an e-commerce site but productivity is stopped because of an issue in the Shipping API Un ejemplo visual de la prueba de un sitio de comercio electrónico, pero la productividad se detiene debido a un problema en la API de envío

Una parte crucial del desarrollo de API es garantizar que los servicios externos o API en los que se basa el proyecto sean funcionales y devuelvan los resultados esperados. Sin embargo, las llamadas a servidores externos no siempre son confiables y pueden producir errores inesperados, lo que lleva a la necesidad de depuración. En tales casos, los servidores simulados son útiles al simular la experiencia de acceder a un servidor externo y devolver una respuesta esperada.

Durante la fase de prueba y desarrollo local del ciclo de vida de desarrollo, los servidores simulados ayudan a aislar las API individuales en el flujo de trabajo. Al configurar un servidor simulado para una API externa, como una API de servicio de envío en el caso de una aplicación de comercio electrónico, uno puede continuar trabajando en función de los resultados esperados de la API a pesar de que esté inactiva. Esto hace que el proceso de prueba sea más eficiente y reduce las posibilidades de que el proyecto se detenga debido a fallas en la API.

Al probar el flujo de pedidos de una aplicación de comercio electrónico, la API debe estar sincronizada con un servicio de envío. Sin embargo, si la API de envío devuelve errores o está inactiva, puede causar retrasos en el desarrollo y las pruebas. Para evitar tales dependencias, se pueden usar servidores simulados para simular las respuestas esperadas de los servicios externos. Con Apigit, los desarrolladores pueden probar cada API individualmente e identificar problemas específicos. Al configurar un servidor simulado para la API de envío, los desarrolladores pueden continuar trabajando en función de los resultados esperados incluso si la API de envío está inactiva. La siguiente imagen muestra el mismo flujo de trabajo con un servidor simulado que reemplaza la API de envío, lo que permite que las pruebas continúen sin interrupciones mientras las API internas funcionen como se espera.

A visual example of testing the e-commerce site while using a mock server to simulate the Shipping API Un ejemplo visual de la prueba del sitio de comercio electrónico mientras se utiliza un servidor simulado para simular la API de envío

Háblame de datos

El intercambio de datos está en el corazón de las API, independientemente del protocolo o el verbo HTTP utilizado. Sin embargo, estos datos pueden contener información personal confidencial que quizás no desee utilizar para fines de prueba. Por otro lado, el uso de datos de marcador de posición como "John Doe" puede volverse monótono y poco realista. Ahí es donde los servidores simulados son útiles.

Los servidores simulados son útiles para administrar tanto las pruebas diarias como los casos de uso complicados, incluidos aquellos en los que es necesario proteger los datos privados o cuando desea simular un flujo de trabajo similar al de producción.

Con Apigit, puede crear datos dinámicos para sus servidores simulados al generarlos a partir de una serie de solicitudes estrechamente acopladas y ejemplos de respuestas correspondientes. En lugar de confiar en el ejemplo guardado predeterminado, puede personalizar la respuesta para que se adapte a sus necesidades.

Una forma de lograr esto es editar el ejemplo de respuesta para incluir variables dinámicas. Este enfoque permite que su servidor simulado aproveche la biblioteca integrada y proporcione datos ficticios que imitan los datos del mundo real.

Internet es un lugar impredecible: deje que los simulacros pongan orden en su ciclo de vida de desarrollo

Los desarrolladores pueden adoptar una mentalidad similar a la de los deportes en los que se centran en controlar los controlables. En el desarrollo, la estabilidad de una API externa no siempre está bajo su control, pero se pueden usar servidores simulados para simular lo que debería suceder, lo que reduce los problemas inesperados. Mediante el uso de servidores simulados, los desarrolladores pueden crear la estabilidad que necesitan para hacer su trabajo de manera efectiva. Por lo tanto, deje que los servidores simulados sean la estabilidad que los desarrolladores necesitan para lograr sus objetivos sin confusiones ni contratiempos inesperados.