运行 针对 Wire-Mock 请求的自定义代码
Run custom code against a Wire-Mock request
WireMock 是否允许我们针对特定请求运行 一些任意代码?
因此,例如,如果 API 模拟公开一个 POST 端点以添加新项目,另一个 GET 端点以获取目前已添加的所有项目。因此,我们可以在 WireMock 端保留一个集合,并在 POST 和 return GET 时向集合中的所有项目添加项目。
我们将如何实现?
找到了。如果它对任何人有帮助,您可以使用 Response
对象的 WithCallback()
函数(而不是我正在搜索的 WireMockServer
对象)在将响应返回给客户端之前调用任意函数。看起来像这样:
Server.Given(Request.Create().WithPath("/entries/get").UsingGet())
.RespondWith(Response.Create()
.WithHeader("Content-Type", "application/json")
.WithCallback(req => {
//do whatever function you want to call here
return new ResponseMessage
{
BodyData = new BodyData() { BodyAsJson = DATA_OBJECT_TO_RETURN }
};
})
.WithStatusCode(200));
WireMock 是否允许我们针对特定请求运行 一些任意代码?
因此,例如,如果 API 模拟公开一个 POST 端点以添加新项目,另一个 GET 端点以获取目前已添加的所有项目。因此,我们可以在 WireMock 端保留一个集合,并在 POST 和 return GET 时向集合中的所有项目添加项目。
我们将如何实现?
找到了。如果它对任何人有帮助,您可以使用 Response
对象的 WithCallback()
函数(而不是我正在搜索的 WireMockServer
对象)在将响应返回给客户端之前调用任意函数。看起来像这样:
Server.Given(Request.Create().WithPath("/entries/get").UsingGet())
.RespondWith(Response.Create()
.WithHeader("Content-Type", "application/json")
.WithCallback(req => {
//do whatever function you want to call here
return new ResponseMessage
{
BodyData = new BodyData() { BodyAsJson = DATA_OBJECT_TO_RETURN }
};
})
.WithStatusCode(200));