Comportamiento de los mocks
Los mocks proporcionan respuestas mayormente estáticas a las solicitudes que corresponden al contrato de la API. Responden a las solicitudes sin tener en cuenta la seguridad definida en la API, la carga útil de la solicitud o los encabezados de la solicitud (excepto el encabezado Accept que se utiliza para la negociación de contenido).
Cuando se realiza una solicitud, la simulación crea una respuesta basándose en lo que el usuario proporcionó (ejemplo, valor predeterminado, valor de enumeración) o utilizando un valor de ejemplo integrado.
Por ejemplo, si la solicitud devuelve un objeto, se utiliza el ejemplo del objeto si se proporciona uno. Si no, se utilizan los ejemplos de cada una de las propiedades y se crea un objeto JSON a partir de ellos. Esto también funciona para las cabeceras de respuesta.
Respuestas
- Si su operación solo tiene un rango de respuesta, se devuelve el primer estado del rango. Por ejemplo, una operación con un rango de respuesta 2XX devuelve una respuesta de 200.
- Si su operación tiene un código de respuesta específico y rangos de respuesta o una respuesta predeterminada, se devuelve el código definido. Por ejemplo, una operación con una respuesta 201 y un rango de respuesta 3XX devuelve la respuesta 201.
- Si su operación tiene varios rangos de respuesta y ningún estado de respuesta definido, devuelve el primer estado del primer rango. Por ejemplo, una operación con un rango de respuesta 4XX y 5XX devuelve una respuesta 400.
- Si su operación solo tiene una respuesta predeterminada, la respuesta devuelta depende del método de operación:
- Si el método utilizado es POST, devuelve una respuesta 201.
- Para otros métodos, se devuelve una respuesta 204 si no se define un cuerpo de respuesta y se devuelve una respuesta 200 si se define un cuerpo de respuesta.
- Si su operación no tiene una respuesta definida, devuelve una respuesta 200.
- Las respuestas 1XX no son compatibles con las simulaciones. Si una operación tiene el rango de respuesta 1XX o un código de respuesta definido en este rango, se devuelve una respuesta 404.
Combinaciones
- Todo de: si se define un ejemplo, se devuelve ese mismo ejemplo. Si no se define ningún ejemplo para el tipo de datos, las propiedades de los tipos se fusionan y se utilizan los ejemplos definidos a nivel de propiedad o se generan valores de ejemplo. Si una propiedad se define dos veces en diferentes tipos, solo se conserva el último valor. Los tipos primitivos se descartan, solo se devuelven objetos.
- Cualquiera de o Uno de: si se define un ejemplo, se devuelve ese mismo ejemplo. Si no se define ningún ejemplo, se genera una respuesta a partir del primer tipo de la lista.
Restricciones
- Disponible solo en la solicitud: la propiedad está excluida del ejemplo generado.
- Disponible solo en la respuesta: la propiedad se incluye en el ejemplo generado.
- Disponible en la solicitud y la respuesta: la propiedad se incluye en el ejemplo generado.
Los ejemplos proporcionados a nivel de tipo de datos tienen prioridad sobre las propiedades. Si una propiedad definida como Disponible solo en la solicitud se incluye en el ejemplo, se devuelve en la respuesta. Si una propiedad definida como Disponible solo en la respuesta o Disponible en la solicitud y la respuesta no se incluye en el ejemplo, no se devuelve en la respuesta.