Swagger是什么?
官方说法:Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
个人觉得,swagger的一个最大的优点是能实时同步api与文档。在项目开发过程中,发生过多次:修改代码但是没有更新文档,前端还是按照老旧的文档进行开发,在联调过程中才发现问题的情况(当然依据开闭原则,对接口的修改是不允许的,但是在项目不稳定阶段,这种情况很难避免)。
一、开发环境
1、idea 2018
2、springboot2.0.2.RELEASE
3、Java 1.8
二、编写一个简单的springboot 项目, 网上有很多小例子,下面是我自己写的一个小demo, 代码就直接贴出来,比较简单
1、目录结构
2、User
/**
* Description:
* User: wyt
* Date: 2018-05-28 10:31
*/
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String name;
@Column
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
3、UserRepository
/**
* Description:
* User: wyt
* Date: 2018-05-28-10:34
*/
public interface UserRepository extends JpaRepository<User, Integer> {
}
4、UserController
/**
* Description:
* User: wyt
* Date: 2018-05-28 10:18
*/
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/simple/{id}")
public User findById(@PathVariable Integer id) {
return this.userRepository.findById(id).orElse(null);
}
}
5、application.yml
server:
port: 8088
spring:
profiles:
active: prod
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost: