Невозможно использовать шаблон Mustache с альтернативным ответом Mockserver
у меня естьMockServer
5.14.0
(Netty
) приложение, работающее какDocker
контейнер. Я пытаюсь настроить ожидание, основанное на данномGET
запрос по идентификатору, если ресурс существует, вернуть набор данных, доступный для того же, в противном случае предопределенный () ответ.
Я хотел бы использовать (Mustache
) шаблон только для телаHTTP 404
(Not Found
) ответ:
// templates/not-found.response.mustache
{
"timestamp": "{{ now_iso_8601 }}",
"status": 404,
"error": "Not Found",
"message": null,
"path": "{{ request.path }}"
}
Проблема в том, что я не могу найти способ подключить его кHttpResponse
внутри обратного вызова:
@Override
public HttpResponse handle(final HttpRequest httpRequest) throws Exception {
final var id = StringUtils.substringAfterLast(new URI(httpRequest.getPath().getValue()).getPath(), "/");
logger.debug("Retrieving character with identifier [{}]", id);
final var template = HttpTemplate.template(HttpTemplate.TemplateType.MUSTACHE,
FileReader.readFileFromClassPathOrPath("templates/not-found.response.mustache"));
return repository.findById(UUID.fromString(id))
.map(it -> HttpResponse.response()
.withBody(JsonBody.json(it))
.withHeader("content-type", "application/json")
.withStatusCode(200)
.orElseGet(() -> HttpResponse.notFoundResponse()
.withHeader("content-type", "application/json")
.withBody(template.getTemplate()));
}
Есть ли способ достичь того, что я ищу, или это нужно переназначить по-другому?