Как настроить файл yaml в swagger-ui для обработки тела ответа, содержащего JSON? - PullRequest
0 голосов
/ 05 июня 2019

Я встал java jersey(jax-rs) rest web service. Ниже конечной точки службы возвращается json в качестве ответа, который я считаю.

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/foo")
public Response getFoo(@QueryParam("name") String name) {
   ....
   String data = ...; // set captured value to a variable of String type
   return Response.status(Status.OK).entity(data).build();
}

Когда я запускаю вызов rest из пользовательского интерфейса swagger-ui, я получаю ожидаемые данные, однако в теле ответа я вижу can't parse JSON. Raw Result. Я гуглял в поисках подсказки why, что это происходит, и how, чтобы исправить это, но я не был успешным.

Здесь response часть yaml файла swagger-ui потребляет.

swagger: '2.0'
info: ....
...
produces:
  - application/json
/paths:
  /foo:
   ...
   response:
     '200':
        description: test foo
        content:
          application/json:
             schema:
               type: object

Вот пример тела ответа. Возвращенные данные разбавлены версией, но наверняка их содержимое возвращено правильно.

can't parse JSON. Raw Result:
{
  "name": "foo",
  "address": "somewhere on earth"
}
{
  "name": "foo",
  "address": "somewhere on mars"
}

[Update]

Приношу свои извинения. Ответ найден. Уведомление о возврате, кратное json выше. Если возвращается более json данных, они должны содержаться в json array. Вот почему был брошен can't parse json. Также убран заголовок изображения в вере, он не нужен.

Правильный формат должен быть:

 [
  {"name": "foo",
   "address": "somewhere on earth"
  },
  {
   "name": "foo",
   "address": "somewhere on mars"
  }
 ]
...