2017-06-13 4 views
3

Ich habe the guide here to create a postman mock für eine Postbote Sammlung gefolgt. Die Mock scheint erfolgreich erstellt zu sein, aber ich habe keine Ahnung, wie man den Mock-Service benutzt.Wie man einen Postman Mock Server verwendet

Ich habe eine URL für die Mock gegeben, aber wie kann ich eine meiner Anforderungen angeben? Wenn ich ausgeben eine GET-Anforderung an https://{{mockid}}.mock.pstmn.io ich die folgende Antwort erhalten:

{ 
    "error": { 
     "name": "mockRequestNotFoundError", 
     "message": "We were unable to find any matching requests for the mock path (i.e. undefined) in your collection." 
    } 
} 

Nach dem same guide mentioned above die folgende URL, um „die mock laufen“ https://{{mockId}}.mock.pstmn.io/{{mockPath}} aber was genau ist mockPath?

In meiner Sammlung habe ich viele Ordner, und in einem dieser Ordner habe ich eine Anfrage mit einer Beispielantwort. Wie greife ich auf diese Beispielantwort durch den Schein zu? Danke für alle Hilfe im Voraus!

Here's the Postman Pro API, die nicht viel mehr als nur das Erstellen von Lese-Mocks erwähnt.

+0

ich, dass auch ich frage, wie funktioniert eigentlich Postman Mock-Server Anforderungs-URLs auf 'mockPath' Karte? Wird angenommen, dass alle Anfrage-URLs die gleiche Domain haben und einfach den Pfad zu "mockPath" zuordnen? Was, wenn ich verschiedene Domains in einer bestimmten Sammlung habe, was würde dann "mockPath" verwenden? –

+0

@ PetrusK. - Zur Zeit unterscheidet Pseudo nicht zwischen Domänen innerhalb einer Sammlung. Es wird deterministisch das erste in der Reihenfolge zurückgeben, wenn es dasselbe HTTP-Verb, Pfad und "x-Mock-Response-Code" für mehrere Beispiele trifft. –

+0

@PratikMandrekar Bedeutet das, dass es auch deterministisch die erste in der Reihenfolge zurückgibt, wenn mehrere Ordner die exakt gleiche Anfrage enthalten (ich meine Anfrage-URL)? Wir verwenden zum Beispiel die gleiche Anfrage-URL (aber mit unterschiedlichen Body-Daten) in allen Ordnern. –

Antwort

2

Wenn Sie im Beispiel fordert ein GET auf api.domain.com/api/foo dann der mockPath ist /api/foo und Ihr Mock Endpunkt ist ein GET Aufruf https://{{mockid}}.mock.pstmn.io/api/foo.

Die HTTP request methods und der Pfadname wie in der Abbildung gezeigt, bilden einen Schein.

breaking down a url

Für Kollektions einfache Bedienung ist der Mock-Server entwickelt, um an der Spitze verwendet werden. Die Anfrage in der examples wird so verwendet, wie sie mit der Antwort verbunden ist. Der Name des Ordners oder der Sammlung ist kein Teil des Pfadnamens und wird bei Verwendung eines Mocks nicht berücksichtigt. Eine Sammlung verspotten bedeutet, alle Beispiele in Ihrer Sammlung zu verspotten. Ein Beispiel ist ein Tupel von Anfrage und Antwort.

Ein optionaler Antwortstatuscode, wenn angegeben, können Sie die entsprechende Antwort für den gleichen Pfad abrufen. Dies kann mit dem Header x-mock-response-code festgelegt werden. Wenn also x-mock-response-code als 404 übergeben wird, wird das Beispiel zurückgegeben, das mit dem Pfadnamen übereinstimmt und eine Antwort mit dem Statuscode 404 hat.

Derzeit, wenn es Beispiele mit dem gleichen Pfad aber unterschiedlichen Domänen gibt, und Mock ist nicht in der Lage, zwischen ihnen zu unterscheiden, wird es den ersten deterministisch zurückgeben.

+0

Ich habe ein paar Ordner in meiner Sammlung, und jeder Ordner kann die gleiche Anfrage wie andere Ordner enthalten. Angenommen, ich habe zwei Anfragen für "api.domain.com/api/foo". Woher weiß der Mock, welche Anfrage ausgewählt werden soll? –

+0

@JimAho Was unterscheidet die Anfragen zwischen zwei Ordnern? Wie verhalten sich ähnliche Anfragen in zwei verschiedenen Ordnern unterschiedlich? –

+0

Nichts unterscheidet sie, der Grund, warum ich sie dupliziert habe, ist, weil, wenn ich die Postman Runner-Funktion verwende und eine Sammlung und einen Ordner targetiere, möchte ich, dass sie alle notwendigen Anfragen enthält. Sie verhalten sich nicht anders, aber nur einer von ihnen kann Beispielanfragen gespeichert haben (was ich verstehe ist, was der Mock Server verwendet). –

1

Ich hatte das gleiche Problem, einen irrelevanten Fehler zu sehen, aber schließlich fand ich die Lösung. Leider kann ich auf der Postman-Website keine Referenz finden. Aber hier ist meine Lösung:

Wenn Sie einen Mock-Server erstellen, definieren Sie Ihre erste Anfrage (wie GET api/v1/about). Also wird der Mock-Server erstellt, aber selbst wenn Sie Ihren API-Schlüssel erhalten und ihn in den Header der Anfrage einfügen (als x-api-key), wird immer noch ein Fehler ausgegeben. Es macht keinen Sinn, aber es stellte sich heraus, dass die Definition der Anfrage nicht ausreicht. Für mich hat es nur eine Antwort zurückgeschickt, als ich ein Beispiel für die Anfrage hinzugefügt habe.

Also ich empfehle für jede Anfrage, die Sie erstellen, auch mindestens ein Beispiel zu erstellen. Die von Ihnen gesendete Anforderung wird mit den von Ihnen erstellten Beispielen abgeglichen, und die übereinstimmende Antwort wird zurückgegeben. Sie können Körper, Header und den HTTP Status Code der Beispielantwort definieren..

Ich habe kein Pro Postman Abonnement und es funktionierte für mich mit meinem kostenlosen Abonnement.

Menü für ein Beispiel des Hinzufügen oder zum Bearbeiten eines davon auswählen: enter image description here

UI für das Beispiel definieren (siehe Körper, Kopf-und-Status): enter image description here

Wie zurück zur Anfrage Seite: enter image description here

Hier ist die richtige Antwort, die ich auf meinem Beispiel erhalten basiert: enter image description here

+0

Kann jemand angeben, welches Beispiel ausgeführt werden soll, wenn ein API-Aufruf über App-Code erfolgt? Momentan sieht es so aus, als würde der erste, der erstellt wurde, ausgeführt werden, aber gibt es irgendeinen Weg dies zu ändern? – wondersz1