您的位置:首页 > 编程语言 > Java开发

springboot中使用swagger2构建restful接口文档

2017-10-13 14:57 761 查看
最近几年互联网项目、移动应用越来越多,不同于之前的企业内部应用,该类项目通常就是好几个应用互相调用,我们一般会使用word或者excel来记录接口的相应描述,但是这样会有一些问题,比如更新困难,不易管理。

Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,它既能解决帮我们自动生成接口文档,并且还能在线调试。

记录下在springboot中swagger的使用

1、添加依赖

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>


2、编写配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
Contact contact=new Contact("meepoguan","http://blog.csdn.net/u011890101","邮箱地址");
return new ApiInfoBuilder()
.title("接口文档")
.description("测试接口")
.termsOfServiceUrl("测试接口")
.contact(contact)
.version("1.0")
.build();
}
}


3、编写实体类

public class User implements Serializable{

/**
*
*/
private static final long serialVersionUID = 3221700752972709820L;

private int id;

private String name;

private int age;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}

}


4、编写restful接口

@RestController
@RequestMapping("users")
public class UserController {

@ApiOperation(value="获取用户列表")
@GetMapping
public String list() {
//TODO 查询操作
return "";
}

@ApiOperation(value="新增用户",notes="填写对象创建用户")
@ApiImplicitParam(name="user",value="实体user",required=true,dataType="User")
@PostMapping
public String saveUser(@RequestBody User user) {
//TODO 新增操作
return "";
}

@ApiOperation(value="更新用户",notes="根据id指定对象,并根据传来的对象进行更新")
@ApiImplicitParams({
@ApiImplicitParam(name="id",value="用户id",required=true,dataType="String"),
@ApiImplicitParam(name="user",value="用户实体对象",required=true,dataType="User")
})
@PutMapping(value="{id}")
public String updateuser(@PathVariable String id) {
//TODO 更新用户
return "";
}

@ApiOperation(value="删除用户")
@ApiImplicitParam(name="id",value="用户id",required=true,dataType="String")
@DeleteMapping(value="id")
public String deleteUser(@PathVariable String id) {
//TODO 删除用户
return "";
}
}


运行项目,输入http://localhost:8080/swagger-ui.html



如果能看到该页面,则证明整合成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: