使用 Springfox 的 Swagger UI 中的超媒体链接

Hypermedia links in Swagger UI using Springfox

我正在制作一个 RESTful API,使用 spring-hateoas 库来实现超媒体。我的端点的响应是 application/hal+json(我的 DTO 扩展了 ResourceSupport)。

我正在使用 Swagger 记录端点,并使用 Springfox 自动生成 swagger-ui.

问题是生成的文档不正确。

作为对 POST 端点的请求,UI 将我的 DTO 中的 _links 部分设置为有效负载的一部分,因此我认为我应该将其作为参数发送给我的 POST 端点:

{
  "category": "string",
  "creator": "string",
  "description": "string",
  "id": 0,
  "links": [
    {
      "href": "string",
      "rel": "string",
      "templated": true
    }
  ],
  "period": 0,
  "recipient": 0,
  "title": "string",
  "type": 0
}

所以我的问题是:有什么方法可以让 springfox 知道 application/hal+json 作为参数内容类型?如果没有,是否有任何方法可以从请求中隐藏 _links 部分?

因此,我发现隐藏链接部分的唯一方法是覆盖我的 DTO 中的 setLinks 方法扩展 ResourceSupport,并将 hidden 设置为 true,如下所示:

@ApiModelProperty(hidden = true)
public void setLinks(final Link... links) {
    super.add(links);
}