# Bootst gedrag na

Deze sectie beschrijft hoe mocks omgaan met de verschillende API-definitie-elementen die beschikbaar zijn in API Contracts.

Mocks bieden voornamelijk statische antwoorden op verzoeken die overeenkomen met het API-contract. Ze reageren op verzoeken zonder rekening te houden met beveiliging die is gedefinieerd op de API, de verzoekpayload of verzoekheaders (met uitzondering van de header Accept die wordt gebruikt voor contentonderhandeling).

Wanneer een verzoek wordt gedaan, maakt de mock een respons aan, hetzij op basis van wat de gebruiker heeft opgegeven (voorbeeld, standaardwaarde, enum-waarde), hetzij met behulp van een ingebouwde voorbeeldwaarde.

Als het verzoek bijvoorbeeld een object retourneert, wordt het voorbeeld van het object gebruikt als er een is opgegeven. Zo niet, dan worden de voorbeelden bij elk van de eigenschappen gebruikt en wordt daaruit een JSON-object gemaakt. Dit werkt ook voor responsheaders.

## Reacties

* Als uw bewerking alleen een responsbereik heeft, wordt de eerste status in het bereik geretourneerd. Een bewerking met een responsbereik van 2XX retourneert bijvoorbeeld een respons van 200.
* Als uw bewerking een specifieke responscode en responsbereiken of een standaardrespons heeft, wordt de gedefinieerde code geretourneerd. Een bewerking met een 201-respons en een 3XX-responsbereik retourneert bijvoorbeeld de 201-respons.
* Als uw bewerking meerdere responsbereiken en geen gedefinieerde responsstatus\n heeft, wordt de eerste status van het eerste bereik geretourneerd. Een bewerking met bijvoorbeeld een responsbereik van 4XX en 5XX retourneert een 400-respons.
* Als uw bewerking alleen een standaardrespons heeft, is de geretourneerde respons afhankelijk van de bewerkingsmethode:
  * Als de gebruikte methode POST is, wordt er een 201-respons geretourneerd.
  * Voor andere methoden wordt een 204-respons geretourneerd als er geen responsbody is gedefinieerd en wordt een 200-respons geretourneerd als er een responsbody is gedefinieerd.
* Als uw bewerking geen gedefinieerde respons heeft, wordt er een 200 respons geretourneerd.
* 1XX antwoorden worden niet ondersteund door mocks. Als een bewerking het 1XX responsbereik of een gedefinieerde responscode in dit bereik heeft, wordt een 404 respons geretourneerd.

## Combinaties

* Alles van: als er een voorbeeld is gedefinieerd, wordt dit geretourneerd. Als er geen voorbeeld is gedefinieerd voor het gegevenstype, worden de eigenschappen van de typen samengevoegd en worden de op eigenschapsniveau gedefinieerde voorbeelden gebruikt of worden er voorbeeldwaarden gegenereerd. Als een eigenschap twee keer is gedefinieerd in verschillende types, wordt alleen de laatste waarde behouden. Primitieve typen worden verworpen, alleen objecten worden geretourneerd.
* Any of of One of: als er een voorbeeld is gedefinieerd, wordt dit geretourneerd. Als er geen voorbeeld is gedefinieerd, wordt er een respons gegenereerd op basis van het eerste type in de lijst.

## Beperkingen

* Alleen beschikbaar in verzoek: de eigenschap is uitgesloten van het gegenereerde voorbeeld.
* Alleen beschikbaar in respons: de eigenschap is opgenomen in het gegenereerde voorbeeld.
* Beschikbaar in verzoek en respons: de eigenschap is opgenomen in het gegenereerde voorbeeld.

Voorbeelden die op gegevenstypeniveau zijn opgegeven, hebben voorrang op eigenschappen. Als een eigenschap die is gedefinieerd als Alleen beschikbaar in aanvraag is opgenomen in het voorbeeld, wordt deze geretourneerd in het antwoord. Als een eigenschap die is gedefinieerd als Alleen beschikbaar in respons of Beschikbaar in aanvraag en respons niet is opgenomen in het voorbeeld, wordt deze niet geretourneerd in de respons.