Verhalten von Mocks
Mocks stellen vorwiegend statische Antworten auf die im API-Vertrag vorgesehenen Requests bereit. Sie antworten auf Requests ohne jede Berücksichtigung der in der API definierten Sicherheit, der Request-Payload oder der Request-Header (mit Ausnahme des Accept-Headers, der für die Content Negotiation verwendet wird).
Wenn ein Request ausgegeben wird, erstellt der Mock eine Antwort basierend auf den vom Benutzer bereitgestellten Daten (Beispiel, Standardwert, Enumerationswert) bzw. auf einem integrierten Beispielwert.
Wenn ein Request beispielsweise ein Objekt zurückgibt, wird das Objektbeispiel verwendet, sofern verfügbar. Andernfalls werden die Beispiele für jede der Eigenschaften verwendet. Davon ausgehend wird dann ein JSON-Objekt erstellt. Dasselbe gilt für Antwort-Header.
Antworten
- Wenn für eine Operation nur ein Antwortbereich vorhanden ist, wird der erste Status im Bereich zurückgegeben. Ein Beispiel: Bei einer Operation mit dem Antwortbereich 2XX wird die Antwort 200 zurückgegeben.
- Wenn eine Operation über einen spezifischen Antwortcode und Antwortbereiche oder über eine Standardantwort verfügt, wird der definierte Code zurückgegeben. Ein Beispiel: Bei einer Operation mit der Antwort 201 und dem Antwortbereich 3XX wird die Antwort 201 zurückgegeben.
- Wenn eine Antwort über mehrere Antwortbereiche, aber keinen definierten Antwortstatus verfügt, wird der erste Status des ersten Bereichs zurückgegeben. Ein Beispiel: Bei einer Operation mit den Antwortbereichen 4XX und 5XX wird die Antwort 400 zurückgegeben.
- Wenn eine Operation nur über eine Standardantwort verfügt, ist die zurückgegebene Antwort von der jeweiligen Operationsmethode abhängig:
- Methode POST: In diesem Fall wird die Antwort 201 zurückgegeben.
- Andere Methoden: Die Antwort 204 wird zurückgegeben, wenn kein Antwort-Body definiert wurde, bzw. die Antwort 200, wenn ein definierter Antwort-Body vorhanden ist.
- Wenn für eine Operation keine Antwort definiert wurde, wird die Antwort 200 zurückgegeben.
- 1XX-Antworten werden von Mocks nicht unterstützt. Wenn eine Operation über den Antwortbereich 1XX oder über einen definierten Antwortcode in diesem Bereich verfügt, wird die Antwort 404 zurückgegeben.
Kombinationen
- All of (Alle von): Wenn ein Beispiel definiert wurde, wird dieses zurückgegeben. Wurde kein Beispiel für den Datentyp definiert, dann werden die Eigenschaften der Typen zusammengeführt und die auf Eigenschaftsebene definierten Beispiele verwendet bzw. es werden Beispielwerte generiert. Wenn eine Eigenschaft zweimal in verschiedenen Typen definiert wurde, wird nur der letzte Wert beibehalten. Primitive Typen werden verworfen, es werden nur Objekte zurückgegeben.
- Any of (Beliebiges von) oder One of (Eines von): Wenn ein Beispiel definiert wurde, wird dieses zurückgegeben. Wurde kein Beispiel definiert, dann wird ausgehend vom ersten Typ in der Liste eine Antwort generiert.
Einschränkungen
- Available in request only (Verfügbar nur in Request): Die Eigenschaft wird aus dem generierten Beispiel ausgeschlossen.
- Available in response only (Verfügbar nur in Antwort): Die Eigenschaft wird in das generierte Beispiel einbezogen.
- Available in request and response (Verfügbar in Request und Antwort): Die Eigenschaft wird in das generierte Beispiel einbezogen.
Die auf Datentypebene bereitgestellten Beispiele erhalten Vorrang vor den Eigenschaften. Wenn eine als Available in request only (Verfügbar nur in Request) festgelegte Eigenschaft in das Beispiel einbezogen wird, wird sie in der Antwort zurückgegeben. Wenn eine als Available in response only (Verfügbar nur in Antwort) oder Available in request and response (Verfügbar in Request und Antwort) festgelegte Eigenschaft nicht in das Beispiel einbezogen wird, wird sie nicht in der Antwort zurückgegeben.