Невозможно использовать шаблон 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()));
}

Есть ли способ достичь того, что я ищу, или это нужно переназначить по-другому?

0 ответов

Другие вопросы по тегам