Sandbox con WireMock
Las APIs más nuevas tienen sus endpoints de sandbox creados utilizando WireMock como herramienta. Esto permite una mayor agilidad en la creación y actualización de APIs de sandbox y una mayor flexibilidad en las funcionalidades que podemos implementar por medio de stubs.
Stubs
Un stub es un conjunto de especificaciones que el servidor utiliza para mockear una request y una response que el servidor es capaz de procesar.
El stub consiste en:
- Request
- Un path que recibe la solicitud;
- Headers y sus valores;
- El verbo esperado para ese path;
- Una OpenApi Specification con el body esperado, en caso de ser necesario.
- Response
- Un header de retorno
- Un código de retorno
- Un body de retorno
Esta especificación es luego procesada y servida como una API Rest.
Response específica de WireMock
Cuando una solicitud HTTP llega al servidor, WireMock busca un stub compatible, validando los headers y el payload. En caso de encontrarse un stub compatible, el retorno es el especificado en el stub (y, por consiguiente, en la documentación del producto en el API reference).
En caso de no encontrarse un stub compatible, ya sea por no tener los headers especificados o porque el body no concuerda con la documentación, WireMock retornará 404 - Not Found y un payload text/plain que contiene el stub más cercano encontrado, con la divergencia marcada con does not match.
