如何在swagger-ui中配置yaml文件以处理包含JSON的响应正文?

时间:2019-06-05 14:14:29

标签: swagger-ui

我已经站起来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();
}

当我从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"
}

[更新]

我的道歉。找到答案。请注意,返回上面的多个json。如果返回的数据多于json,则必须包含在json array中。这就是抛出can't parse json的原因。还删除了标题图片,这是不需要的。

正确的格式应为:

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

0 个答案:

没有答案