使用 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);
}
我正在制作一个 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);
}