Swagger:从参数示例值中删除 class 属性

Swagger: Remove class properties from parameter example value

我正在使用 Swagger 来记录 REST API。

我有一个 class 这样的:

public class Source{ 
    private String url;
    private String category;
    private String label;
    ... 
}

我目前正在使用@ApiImplicitParam 将数据类型设置为 Source.class,但我有多个 POST 请求将 JSON 作为正文参数,比方说,其中的单个变量,例如:

{"label": "labelA"}

由于之前设置的dataType,Swagger显示的示例值UI是一个整体Source.class,大概是这样的:

{
    "url": "string",
    "category": "string",
    "label": "string",
    ...
}

我能否以某种方式将 Swagger UI 显示的示例值针对其中的每个请求进行修改?我的意思是 getSourceFromUrl() 请求应该得到一个 JSON,它只包含一个 url 字段,并且这个例子应该准确地显示这个而不是完整的 Source.class JSON.

先谢谢大家了!

更新

我正在使用 JAX-RS。如果需要,请向我询问更多信息。

如果您使用的是 springfox-swagger2 ,则有注释 @ApiModelProperty 可以执行此操作。

示例:

@ApiModelProperty(required = false, hidden = true)
private String label;

你暂时不能做这样的事情。您必须为每个案例创建不同的 class。

参见 swagger-core 的 github:https://github.com/swagger-api/swagger-core/issues/1863#issuecomment-237339565