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 教程中有另一个用法示例。
我正在尝试将我的电子商务项目后端连接到 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 教程中有另一个用法示例。