Конфигурация Swagger2 пружинная загрузка не будет работать

#java #spring-boot #swagger-ui

Вопрос:

Я пытаюсь добавить swagger в проект, и когда я обращаюсь к localhost:9999/swagger-пользовательский интерфейс всегда возвращает «Страницу с ошибкой белой метки» ;

Вот моя конфигурация чванства.

 @Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .contact(new Contact("Vinicius Deluca", "", "vinidelucka@gmail.com"))
                .title("Products-ms")
                .description("")
                .license("")
                .licenseUrl("")
                .version("1.0")
                .build();

    }
}
 

Я впервые использую эту функцию и не вижу, что я делаю не так. Посмотрите некоторые учебные пособия и, похоже, я сделал все точно так же. Но все равно не будет работать.

Мой api запускается непосредственно после порта 9999, без корневого пакета (localhost:9999/products-это get)

Контроллер:

 
@RestController
@RequestMapping("/products")
public class ProductController {

    @Autowired
    ProductService productService;

    @GetMapping
    public List<Product> productsList() {
        List<Product> products = productService.productsList();
        return products;
    }

    @GetMapping("/{id}")
    public Optional<Product> searchProductById(@PathVariable String id) {
        Optional<Product> product = productService.searchProductById(id);
        return product;
    }

    @GetMapping("/search")
    public List<Product> searchProducts(@RequestParam(required = false) Integer min_price,
                                            @RequestParam(required = false) Integer max_price,
                                            @RequestParam(required = false) String q) {
        List<Product> products = productService.searchProducts(min_price, max_price, q);
        return products;
    }

    @PostMapping
    public ResponseEntity<Product> insertProduct(@RequestBody ProductForm form) {
        Product product = productService.insertProduct(form);
        return ResponseEntity.ok().body(product);
    }

    @PutMapping("/{id}")
    @Transactional
    public ResponseEntity<Product> updateProduct(@PathVariable String id, @RequestBody ProductForm form) {
        Product product = productService.updateProduct(id, form);
        return ResponseEntity.ok().body(product);
    }

    @DeleteMapping("/{id}")
    @Transactional
    public ResponseEntity<Product> deleteProduct(@PathVariable String id) {
        ResponseEntity<Product> response = productService.deleteProduct(id);
        return response;
    }

}
 

приложение:

 @SpringBootApplication
public class ProductMsApplication {

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

}
 

Комментарии:

1. для Swagger2 попробуйте зайти на свою страницу через localhost9999/swagger-ui.html# . посмотрим, сработает ли это

2. Та же проблема, возвращает страницу с ошибкой белой метки

3. Имя списка (api) имеет отношение к этой работе? Мое название проекта — «productms».

4. Можете ли вы поделиться своим контроллером и кодом приложения? приведенный выше фрагмент кода должен работать, если ваш GET /products работает

5. Конечно, я отредактирую код.