#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. Конечно, я отредактирую код.