网页Swagger http://editor.swagger.io/
通过yum配置文件进行api设置,以及页面展示
Springboot整合Swagger2
pom.xml
<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>
配置Swagger2首页
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* Created on 2019/4/3.
*
* @author dajitui
*/
@Configuration
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//设置为项目文件路径
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot利用swagger构建api文档")
.description("简单优雅的restfun风格,网页版swagger https://editor.swagger.io/?_ga=2.214231903.992793940.1554275851-2087948906.1554275851")
.termsOfServiceUrl("https://editor.swagger.io/?_ga=2.214231903.992793940.1554275851-2087948906.1554275851")
.version("1.0")
.build();
}
}
对api进行Swagger注解
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* Created on 2019/4/3.
*
* @author dajitui
*/
@RestController
public class TestController {
@RequestMapping(value = "/test",method = RequestMethod.PUT)
@ApiOperation(value = "获取用户信息",notes = "根据用户id获取用户详细的信息")
@ApiImplicitParams(@ApiImplicitParam(name = "id",value = "用户id",required = true,dataType = "String"))
public String getById(String id){
return "1";
}
}
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Created on 2019/4/3.
*
* @author dajitui
*/
@ApiModel
@Data
public class User {
@ApiModelProperty(value = "用户id")
private String id;
}
网页访问http://localhost:8080/swagger-ui.html
点击显示api注释,value输入框模拟访问情况,比如访问id为123,输出为1,状态为200
Swagger注解
- @Api:修饰整个类,描述Controller的作用
- @ApiOperation:描述一个类的一个方法,或者说一个接口
- @ApiParam:单个参数描述
- @ApiModel:用对象来接收参数
- @ApiProperty:用对象接收参数时,描述对象的一个字段
- @ApiResponse:HTTP响应其中1个描述
- @ApiResponses:HTTP响应整体描述
- @ApiIgnore:使用该注解忽略这个API
- @ApiError :发生错误返回的信息
- @ApiImplicitParam:一个请求参数
- @ApiImplicitParams:多个请求参数
-
@ApiModelProperty(value = "用户id") 注解对象属性