Comment usurper une API tierce

Sep 03 2020

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

1 NielsvanReijmersdal Sep 04 2020 at 18:11

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/

1 Moro Sep 05 2020 at 14:53

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.

1 dzieciou Sep 05 2020 at 15:16

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"
    ...
  },
  ...
}
1 QuantumNinja Sep 10 2020 at 07:24

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.