So fälschen Sie eine Drittanbieter-API
Unsere Anwendung ruft eine Drittanbieter-API auf, um einige Aufgaben zu erledigen.
Dieser Endpunkt hat ein Problem in der Testumgebung, und das Management hat uns gebeten, diese Umgebung zu verspotten. Wenn die App oder jemand versucht, www.test.com vom Testcomputer aus aufzurufen , erhält er Informationen von einem Mock-Server und nicht vom tatsächlichen www .test.com .
Ich habe versucht, verschiedene Optionen herauszufinden, aber alles verspottet, wenn wir ein Scheinobjekt erstellen und dann das Scheinobjekt aufrufen.
Ich versuche herauszufinden, wie immer, wenn jemand www.test.com anruft , Inhalte von localhost angezeigt werden sollen.
Ich möchte die Hostdatei nicht bearbeiten. Gibt es einen anderen Weg?
Aktualisieren:
Die App wurde konfigurierbar gemacht, sodass wir angeben können, welchen Endpunkt die App aufrufen soll.
Ich habe Mockserver in Postman verwendet, um dies zu simulieren. Postmand unterstützt jedoch keine Abfrageparameter
Für v1 / api? q = 1 und v1 / api? q = 2 wird dieselbe Antwort zurückgegeben
Könnte jemand helfen, wie man einen Mockserver erstellt, der unterschiedliche Antworten für unterschiedliche Abfrageparameter gibt
Antworten
Wir haben gute Erfahrungen mit json-server gemacht. Wir fanden es sehr flexibel.
Holen Sie sich eine vollständige gefälschte REST-API ohne Codierung in weniger als 30 Sekunden (ernsthaft)
Erstellt mit <3 für Front-End-Entwickler, die ein schnelles Back-End für Prototyping und Mocking benötigen.
https://github.com/typicode/json-server
Es kann Server aus statischen JSON-Dateien erstellen, wobei jede ID einen anderen Wert zurückgibt. Oder Sie können JavaScript verwenden, um sie zu generieren. Sie können die Daten basierend auf der ID ändern, zufällige Daten angeben, Datensätze drehen usw.
Sie haben auch eine Version für Sie gehostet, wenn Sie über das Internet testen möchten. Kleine Datensätze sind kostenlos:https://my-json-server.typicode.com/
Laut Postman-Dokumenten :
Wenn keine genaue Übereinstimmung gefunden wird, gibt Postman die am besten passende Antwort basierend auf seinem Algorithmus zurück.
Ich habe den Mock-Server getestet und er funktioniert mit Abfrageparametern. Der Algorithmus zeigt jedoch auf einen Standardwert, wenn Sie den Parameter nicht verspotten. In meinem Fall:
?id=1zeigt auf 200mit okSeite
?id=2zeigt auf 404mit bad requestSeite
?id=3und so weiter ist nicht implementiert und der Mock-Server gibt die 200mit okSeite zurück.
Wenn Sie das Verspotten mit anderen Paketen als Postman akzeptieren, empfehle ich die Verwendung von MockServer oder WireMock , die beide die Beschreibung von Übereinstimmungsregeln in Java und JSON unterstützen.
Mit WireMock können Sie beispielsweise die HTTP-Anforderung nach URL und Abfragezeichenfolge wie folgt abgleichen :
Regex-Matching für Pfad und Abfrage
Java:
urlMatching("/your/([a-z]*)\\?and=query")JSON:
{ "request": { "urlPattern": "/your/([a-z]*)\\?and=query" ... }, ... }
Können Sie env-Parameter einrichten und diese dann verwenden, um zu steuern, mit welchen APIs Ihre App kommuniziert? Sie können dies verwenden, um auf einfache Weise Entwicklungs-, Test- und Produktions-API-Adressen festzulegen.