2015-11-16 2 views
0

Springfox не генерирует правильно чванство документа для простого случая, как этот:Springfox не генерирует Сваггер документов правильно для того же операции-конечной точки, другой запрос параметры

GET /api/departments - Gets all department

GET /api/departments?name=IT - Gets a department with name passed as query parameter

В этом является контроллером пружины:

Сгенерированный файл swagger содержит только GET/api/department а не трассировка с фильтром запросов.

Любое обходное решение?

Кураж Config:

@Bean 
public Docket departmentsV1Api() { 
    return new Docket(DocumentationType.SWAGGER_2) 
     .select() 
     .apis(RequestHandlerSelectors.any()) 
     .paths(PathSelectors.regex("/.*"))     
     .build() 
     .apiInfo(new ApiInfo("Departments Rest API","","v1","","","","")) 
     .pathMapping("/api") 
     .securitySchemes(newArrayList(apiKey())) 
     .securityContexts(newArrayList(securityContext())) 
     .groupName("departmentsV1"); 
} 

ответ

2

Этот случай использования не поддерживается спецификацией. Однако вы можете использовать метод enableUrlTemplating(true) в своем docket, чтобы включить поддержку rfc6570.

Существует также экспериментальная библиотека (springfox-swagger-ui-rfc6570), которая может использоваться в качестве замены для замены стандарта springfox-swagger-ui.

Примечание: Имейте в виду, что это находится в инкубации и может измениться, когда поддержка добавлена ​​в спецификации.

0

Вам необходимо аннотировать параметры метода с @ApiParam, например:

@ApiOperation(value = "Gets a department by name", notes = "", tags = {"departments"}) 
@RequestMapping(value="/departments", params="name", produces=MediaType.APPLICATION_JSON_VALUE, method=RequestMethod.GET) 
public Department getDepartmentByName(@ApiParam(name = "name", value = "name") @RequestParam String name){ 
    ... 
} 
+0

Тот же результат с @ApiParam ... – codependent

+0

Показать конфигурацию разворота – jny