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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011890101/article/details/78226141

最近几年互联网项目、移动应用越来越多,不同于之前的企业内部应用,该类项目通常就是好几个应用互相调用,我们一般会使用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


如果能看到该页面,则证明整合成功了。

猜你喜欢

转载自blog.csdn.net/u011890101/article/details/78226141
今日推荐