Swagger2整合springBoot|Swagger2整合springBoot,自动生成API接口文档
Swagger2整合springBoot 首先导入jar包
io.springfox
springfox-swagger2
2.8.0
io.springfox
springfox-swagger-ui
2.8.0
注意:我一开始导入的是2.7.0jar包,访问swagger页面,图片加载不出来。后面找了半天没找到原因,应该是jar包里面的静态资源损坏了,索性换了2.8.0就好了
新建config
@Configuration
@EnableSwagger2
public class SwaggerConfiguration extends WebMvcConfigurationSupport {@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.mochu.ferp.erp.controller"))
.paths(PathSelectors.any())
.build();
}
//构建 api文档的详细信息函数,注意这里的注解引用的是哪个
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("ERP接口文档说明")
//创建人
.contact(new Contact("吴彦祖","","825636041@qq.com"))
//版本号
.version("1.0")
//描述
.description("联系人")
.build();
}@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}
【Swagger2整合springBoot|Swagger2整合springBoot,自动生成API接口文档】注意 :很多人就是没有添加静态资源映射,重写WebMvcConfigurationSupport 类的addResourceHandlers 方法,指定静态资源的位置。
启动项目,访问Swagger2页面 开始 :访问 http://localhost:8080/swagger-ui.html ,端口号即为自己项目的端口
文章图片
config的 apiInfo 方法对界面上内容进行设置,这些没多大用,大家知道就好。
给类加上注解,实现自动生成API 常用注解:
- @Api()用于类;
表示标识这个类是swagger的资源 - @ApiOperation()用于方法;
表示一个http请求的操作 - @ApiParam()用于方法,参数,字段说明;
表示对参数的添加元数据(说明或是否必填等) - @ApiModel()用于类
表示对类进行说明,用于参数用实体类接收 - @ApiModelProperty()用于方法,字段
表示对model属性的说明或者数据操作更改 - @ApiIgnore()用于类,方法,方法参数
表示这个方法或者类被忽略 - @ApiImplicitParam() 用于方法
表示单独的请求参数 - @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam
属性 | 取值 | 作用 |
---|---|---|
paramType | 对应请求参数类型 | |
path | 以地址的形式提交数据 | |
query | 直接跟参数完成自动映射赋值 | |
body | 参数在请求体里面 | |
form | 以form表单的形式提交 仅支持POST | |
header | 参数在request headers 里边提交 |
//控制层上注解
@RestController
@RequestMapping("/archives")
@Api(tags="档案管理类")
public class ArchivesController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@GetMapping("/abc")
@ApiOperation(value="https://www.it610.com/article/获取订单", notes="提交一组识别的标签id,返回生成的订单详情")
public ResultVO get(@ApiParam(name="id",value="https://www.it610.com/article/优惠券对象") @RequestParam(name = "id") String id){
return ResultVOUtil.success();
}@PostMapping("/edf")
@ApiOperation(value="https://www.it610.com/article/修改订单", notes="提交一组识别的标签id,返回生成的订单详情")
public ResultVO post(@ApiParam(name="coupon",value="https://www.it610.com/article/优惠券对象") @RequestBody Coupon coupon){
return ResultVOUtil.success(coupon);
}@ApiImplicitParams({
@ApiImplicitParam(name="name",value="https://www.it610.com/article/用户名",dataType="string", paramType = "query",example="xingguo"),
@ApiImplicitParam(name="id",value="https://www.it610.com/article/用户id",dataType="long", paramType = "query")})
@PostMapping("/hig")
public ResultVO post(@ApiParam(hidden = true)@RequestBody Order order){
return ResultVOUtil.success(order);
}
}//模型表上注解
@Data//lombok插件的注解,自动生成get,set方法
@ApiModel(value="https://www.it610.com/article/ResultVO",description = "http请求返回的最外层对象")
public class ResultVO {/** 错误码. */
@ApiModelProperty(value="https://www.it610.com/article/返回码",name="code")
private Integer code;
/** 提示信息. */
@ApiModelProperty(value="https://www.it610.com/article/提示信息",name="msg")
private String msg;
/** 具体内容. */
@ApiModelProperty(value="https://www.it610.com/article/具体内容",name="data")
private T data;
}
页面显示
文章图片
注意 :如果方法采用@RequesMapping 注解必须指定方法类型,GET,POST等,否则出现多条API记录。
文章图片
这是swagger自动生成的API文档,点击try it out 可以模拟请求,类似postman功能。
文章图片
自动API生成就这样子了。可以把路径给前端,让前端自己阅读了,省下我们编写API的时间。哈哈
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spring|Spring Boot 整合 Activiti6.0.0
- springboot使用redis缓存
- springboot整合数据库连接池-->druid
- SpringBoot中YAML语法及几个注意点说明
- springboot结合redis实现搜索栏热搜功能及文字过滤
- springboot中.yml文件的值无法读取的问题及解决
- SpringBoot整合MongoDB完整实例代码