Comment usurper une API tierce
Notre application appelle une API tierce pour effectuer quelques tâches.
Ce point de terminaison a un problème dans l'environnement de test, et la direction nous a demandé de nous moquer de cet environnement.Ainsi, lorsque l'application ou quelqu'un essaie d'appeler www.test.com à partir de la machine de test, il obtient des informations d'un serveur simulé plutôt que du véritable www. .test.com .
J'ai essayé de trouver différentes options, mais tout se moque si nous créons un objet fictif puis appelons l'objet fictif.
J'essaie de trouver un moyen par lequel chaque fois que quelqu'un appelle www.test.com, il devrait afficher le contenu de localhost.
Je ne souhaite pas modifier le fichier hôte. Est-ce qu'il y a un autre moyen?
Mettre à jour:
Rendre l'application configurable, afin que nous puissions spécifier le point de terminaison que l'application doit appeler.
J'ai utilisé Mockserver dans Postman pour simuler cela. Mais postmand ne prend pas en charge le paramètre de requête
donc pour v1 / api? q = 1 et v1 / api? q = 2 il renvoie la même réponse
Quelqu'un pourrait-il aider à créer un mockserver qui donne une réponse différente pour différents paramètres de requête
Réponses
Nous avons une bonne expérience avec json-server. Nous l'avons trouvé très flexible.
Obtenez une fausse API REST complète sans codage en moins de 30 secondes (sérieusement)
Créé avec <3 pour les développeurs front-end qui ont besoin d'un back-end rapide pour le prototypage et la simulation.
https://github.com/typicode/json-server
Il peut être serveur à partir de fichiers json statiques, où chaque ID renvoie une valeur différente. Ou vous pouvez utiliser JavaScript pour les générer. Vous pouvez modifier les données en fonction de l'identifiant, donner des données aléatoires, faire pivoter les ensembles de données, etc.
Ils ont également une version hébergée pour vous si vous souhaitez tester sur Internet. Les petits ensembles de données sont gratuits:https://my-json-server.typicode.com/
Selon les documents Postman :
S'il n'y a pas de correspondance exacte trouvée, Postman retournera la meilleure réponse correspondante en fonction de son algorithme.
J'ai testé le serveur fictif et il fonctionne avec les paramètres de requête, mais l'algorithme pointe vers une valeur par défaut lorsque vous ne vous moquez pas du paramètre. Dans mon cas:
?id=1pointe vers 200with okpage
?id=2pointe vers 404with bad requestpage
?id=3et ainsi de suite n'est pas implémenté et le serveur fictif renvoie la page 200with ok.
Si vous acceptez de vous moquer avec d'autres packages que Postman, je suggère d'utiliser MockServer ou WireMock , tous deux prenant en charge la description des règles de correspondance en Java et JSON.
Par exemple, avec WireMock, vous pouvez faire correspondre la requête HTTP par URL et chaîne de requête comme suit :
Correspondance d'expression régulière sur le chemin et la requête
Java:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
Pouvez-vous configurer des paramètres d'environnement, puis les utiliser pour contrôler les API avec lesquelles votre application communique? Vous pouvez l'utiliser pour définir facilement les adresses API de développement, de test et de production.