Cómo falsificar una API de terceros
Nuestra aplicación realiza llamadas a una API de terceros para completar algunas tareas.
Este punto final tiene un problema en el entorno de prueba, y la administración nos ha pedido que simulemos este entorno para que cuando la aplicación o alguien intente llamar a www.test.com desde la máquina de prueba, obtenga información de un servidor simulado en lugar de www real. .test.com .
Traté de encontrar diferentes opciones, pero todo se burla si creamos un objeto simulado y luego llamamos al objeto simulado.
Estoy tratando de encontrar una forma en la que cada vez que alguien llama a www.test.com debería mostrar contenido de localhost.
No quiero editar el archivo de host. ¿Hay alguna otra manera?
Actualizar:
Hizo que la aplicación sea configurable, por lo que podemos especificar a qué punto final debe llamar la aplicación.
Usé Mockserver en cartero para simular esto. Pero postmand no admite el parámetro de consulta
entonces para v1 / api? q = 1 y v1 / api? q = 2 devuelve la misma respuesta
¿Alguien podría ayudar a crear un servidor simulado que dé una respuesta diferente para diferentes parámetros de consulta?
Respuestas
Tenemos una buena experiencia con json-server. Lo encontramos realmente flexible.
Obtenga una API REST falsa completa con codificación cero en menos de 30 segundos (en serio)
Creado con <3 para desarrolladores front-end que necesitan un back-end rápido para prototipos y simulaciones.
https://github.com/typicode/json-server
Puede servidor de archivos json estáticos, donde cada ID devuelve un valor diferente. O puede usar JavaScript para generarlos. Puede cambiar los datos en función de la identificación, dar datos aleatorios, rotar conjuntos de datos, etc.
También tienen una versión alojada para usted si desea probar a través de Internet. Los pequeños conjuntos de datos son gratuitos:https://my-json-server.typicode.com/
Según los documentos de Postman :
Si no se encuentra una coincidencia exacta, Postman devolverá la mejor respuesta de coincidencia según su algoritmo.
He probado el servidor simulado y funciona con parámetros de consulta, sin embargo, el algoritmo apunta a un valor predeterminado cuando no se simula el parámetro. En mi caso:
?id=1apunta a 200con la okpágina
?id=2apunta a 404con la bad requestpágina
?id=3y así sucesivamente no se implementa y el servidor simulado devuelve la página 200con ok.
Si acepta burlarse con otros paquetes que no sean Postman, sugiero usar MockServer o WireMock , ambos con soporte para describir reglas coincidentes en Java y JSON.
Por ejemplo, con WireMock puede hacer coincidir la solicitud HTTP por URL y cadena de consulta de la siguiente manera :
Coincidencia de expresiones regulares en la ruta y la consulta
Java:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
¿Puedes configurar parámetros de env y luego usarlos para controlar con qué apis habla tu aplicación? Puede usar eso para establecer fácilmente direcciones de API de desarrollo, prueba y producción.