чванство не распознает описание API - PullRequest
0 голосов
/ 10 декабря 2018

Я настаиваю docket вот так

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.config.internal"))
        .paths(Predicates.or(PathSelectors.ant("/api**/**")))
        .build();
}

Я создал набор конечных точек заглушки, которые имитируют настоящую для /login или /oauth.

@Api("Authentication")
@RequestMapping("/api")
public interface LoginEndpointApi {

    @ApiOperation(value = "Github SSO endpoint", notes = "Endpoint for Github SSO authentication")
    @ApiResponses({
        @ApiResponse(code = 200, message = "HTML page of main application")
    })
    @GetMapping("/oauth/github")
    default void oauthGithub() {
        throw new UnsupportedOperationException();
    }

    @ApiOperation(value = "Get CSRF token", notes = "Returns current CSRF token")
    @ApiResponses({
        @ApiResponse(code = 200, message = "CSRF token response", response = String.class,
            examples = @Example({@ExampleProperty(value = "015275eb-293d-4ce9-ba07-ff5e1c348092")}))
    })
    @GetMapping("/csrf-token")
    default void csrfToken() {
        throw new UnsupportedOperationException();
    }

    @ApiOperation(value = "Login endpoint", notes = "Login endpoint for authorization")
    @ApiResponses({
        @ApiResponse(code = 200, message = "Successful authentication")
    })
    @PostMapping("/login")
    default void login(
            @ApiParam(required = true, name = "login", value = "login body")
            @RequestBody LoginRequest loginRequest) {
        throw new UnsupportedOperationException();
    }
}

Ноэто не признает это.Он находится в том же пакете com.config.internal, как я описал.

Но страница swagger ui пуста и показывает, что No operations defined in spec!

В чем проблема?

1 Ответ

0 голосов
/ 10 декабря 2018

Если вы хотите предоставить документацию swagger для отображений вашего запроса, указанных выше, вы можете просто описать это с помощью .paths(Predicates.or(PathSelectors.ant("/api/**"))) сопоставителей пути.Но если ваш путь включает в себя что-то более сложное, например api + text without backslash separator, вам следует узнать с помощью https://docs.spring.io/spring/docs/3.1.x/javadoc-api/org/springframework/util/AntPathMatcher.html

...