Файл Swagger Spring Boot без пользовательского интерфейса - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть простой сервис, встроенный в Spring Boot, с простым API.Я добавил библиотеки Springfox для использования Swagger и Swagger UI, но я не хочу, чтобы мое приложение также обслуживало UI.Я просто хочу получить определение от /api/v1/api-docs

Как отключить часть пользовательского интерфейса?Если не добавить библиотеку swagger-ui в качестве зависимости, то по какой-то причине пользовательский интерфейс не удаляется.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Если вы используете Spring Boot

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

    @Bean
    RouterFunction<ServerResponse> routerFunction() {
        return route(GET("/swagger"), req ->
            ServerResponse.temporaryRedirect("<some 404 page>").build());
    }
}
0 голосов
/ 26 февраля 2019

Вы можете заблокировать интерфейс и вернуть HTTP-код 404. Нечто похожее на приведенное ниже

@Controller //note - this is a spring-boot controller, not @RestController
public class HomeController {
    @RequestMapping ("/swagger/api/v1/api-docs")
    public String home(HttpServletRequest request) {
       throw new ResourceNotFoundException(); //Custom Solution

       or 

       throw new NoSuchRequestHandlingMethodException(request);
    }
}


@ResponseStatus(value = HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...