connect spring boot to swagger

connect spring boot to swagger

我正在尝试将我的电子商务项目后端连接到 swagger2。我已经安装了所有的依赖,但是还是不行

这是在我的 pom.xml 文件中声明的依赖项:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
        <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

这是我的用户控制器文件之一:

@RestController
@RequestMapping("/api")
@CrossOrigin
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("/")
    public List<User> GetUsers() {
        return userRepository.findAll();
    }
    @GetMapping("/{id}")
    public User GetUser(@PathVariable String id) {
        return userRepository.findById(id).orElse(null);
    }
    @PostMapping("/")
    public User postMethodName(@RequestBody User user) {
        return userRepository.save(user);
    }
    @PutMapping("/")
    public User PutMapping(@RequestBody User newUser) {
        User oldUser = userRepository.findById(newUser.getId()).orElse(null);
        oldUser.setName(newUser.getName());
        oldUser.setEmail(newUser.getEmail());
        oldUser.setPassword(newUser.getPassword());
        userRepository.save(oldUser);
        return oldUser;
    }
    @DeleteMapping("/{id}")
    public String DeleteUser(@PathVariable String id) {
        userRepository.deleteById(id);
        return id;
    }
}

这是我的主要应用程序的代码:

package com.omazon.ecommerce;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2
public class ECommerceApplication {

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

}

最后,这是我在 application.properties 文件中声明的内容:

spring.data.mongodb.uri=mongodb://localhost:27017/e-commerce

这是我得到的错误图片:

Swagger2 的使用似乎需要(或至少经常包括)通过 new Docket()new Docket(DocumentationType.SWAGGER_2) 等实例化的 Docket api 的概念。我在你的代码片段中没有看到这一点,所以想知道这是否是一个问题。

根据 swagger 文档,Docket 是 Springfox 的 主要 api 配置机制 .

具体而言,this 有关配置的部分可能会有所帮助。注意 Docket 实例化:

...
@Bean //Don't forget the @Bean annotation
public Docket customImplementation(){
   return new Docket()
         .apiInfo(apiInfo());
         //... more options available
...

同样的文档中还有一个更完整的示例 here

作为参考,this 教程中有另一个用法示例。