我正在寻找一种工具或库,它允许我快速开发一个 Spring Boot 后端,在我们等待客户提供有关服务业务逻辑的规范时,它会公开模拟的 REST 服务。
是否有任何最佳实践?例如从 JSON 文件或其他内容读取?
感谢大家
******* 其他信息 *******
- 我想使用相同的服务器(嵌入式服务器(,因为已经开发了某些API。
- 我需要真正的服务响应,而不是测试。
- 我想要比返回语句更有条理的东西
return "{ "id": 01, "name": "Donald Stumpet" }";
在这种情况下,Wiremock将是你的伙伴(http://wiremock.org/docs/getting-started/(
在春季启动测试类中,设置线模拟规则:
@Value("${wireMockServer.port}")
private int wireMockPort;
private WireMockRule wireMockRule;
@Rule
public WireMockRule getWireMockRule() {
if (wireMockRule == null) {
wireMockRule = new WireMockRule(wireMockConfig().port(wireMockPort).notifier(new Slf4jNotifier(true)));
}
return wireMockRule;
}
然后模拟你的 API:
String url = UriComponentsBuilder
.fromUriString("XXXXX").buildAndExpand("pathParam1", "pathParamVal").toUriString();
stubFor(get(urlEqualTo(url))
.willReturn(aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
.withHeader("Connection", "close")
.withBody(asJson(mockedResponseObject))));
如果您不想以编程方式存根您的请求并将它们存储在 json 文件中,那么 使用属性wireMock.mappingsUnderClasspath提及映射位置
在该目录中,创建一个名为mappings的文件夹并放置您的映射 json 文件: 例如。
{
"request": {
"method": "GET",
"urlPattern": "/foo/myApi"
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"bodyFileName": "mockedResponse.json"
}
}
并将 mockedResponse.json 保存在wireMock.mappingsUnderClasspath中名为__files(双下划线(的目录中