Springboot使用Swagger快速生成api文档管理,网上有很多帖子写了方法,在这里我记录一下步骤方便之后查阅
1.引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!-- swagger-ui为项目提供api展示及测试的界面 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
2.引入静态资源
需要到github上下载swagger-ui的包连接地址:swagger项目地址
下载后解压将dist文件夹的内容导入项目
3.创建SwaggerApiConfig类
1),创建 Dock对象的bean,设置参数
2).addResourceHandlers方法添加映射,使http:localhost:8080/swagger-ui.html连接可以访问api接口页面,需要注意自己的资源路径
@EnableWebMvc
@EnableSwagger2
@Configuration
@ComponentScan(basePackages ="cn.victw.datatool.controller")
public class SwaggerApiConfig extends WebMvcConfigurerAdapter {
@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/");
}
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.victw.datatool.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("北京外企平台3.0在线API文档")
.termsOfServiceUrl("http://blog.csdn.net/zhuzj12345")
.contact(new Contact("Jackson.zhu","http://blog.csdn.net/zhuzj12345","zhuzj40721p@126.com"))
.version("1.0.0")
.build();
}
}
3.在controller的方法上加注释,swagger会自动生成文档
@RestController
@RequestMapping("/user")
@Api("swaggerDemoController相关的api")
public class UserController {
@Autowired
private UserService userService;
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="姓名",dataType="String")
})
@ApiOperation(value = "查询所有人员信息")
@GetMapping("/all")
@ResponseBody
public JSONObject getAllUserInfo(HttpServletRequest request, HttpServletResponse response){
JSONObject result=new JSONObject();
try{
List<User> list=userService.getAllUser();
result.put("key",200);
result.put("list",list);
}catch (Exception e){
result.put("key",500);
e.printStackTrace();
}
return result;
}