【发布时间】:2015-12-15 11:42:05
【问题描述】:
我在试图让我的招摇 UI 返回我想要的东西时遇到了一些问题。
问题是我想在 Swagger UI 中将 areaName 显示为 path 参数类型而不是 query。我可以通过使用@PathVariable String "areaName" 来做到这一点。
但我想在单独的请求类中验证区域名称,现在我尝试使用 @Valid @ModelAttribute 代替。问题在于 Swagger 给了我一个无聊的请求 URL,例如:
/v1/areas/{areaName}/series?areaName=testarea&from=20151201 p>
我希望它以与我使用 @PathVariable 时相同的方式显示:
/v1/areas/testarea/series?from=20151201
我曾尝试在 requestclass 中使用 @ApiParam,甚至尝试隐藏 = true 以在控制器中保留 @PathVariable 并仅在 requestclass 中隐藏 @ApiParam 以免在Swagger UI 但隐藏似乎不起作用。我正在使用 Swagger/SwaggerUI 2.3.0 版。有什么想法吗?
请求类:
public class AreaSeriesRequest {
@ApiParam(value = "Area selector, wich area to get series from.", required = true)
@EnergyAreas
private String areaName;
public String getAreaName() {
return AreaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
控制器:
@RequestMapping(value = "/{areaName}/series", method = GET, produces = json)
@ResponseStatus(HttpStatus.OK)
public Page<GroupSeriesDto> getAreaSeriesPaginated(
//@PathVariable String areaName,
@Valid @ModelAttribute AreaSeriesRequest seriesRequest, BindingResult seriesResult,
@ModelAttribute PagingRequest pagingRequest,
Principal currentUser) {
【问题讨论】:
标签: spring rest swagger swagger-ui