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文件夹的内容导入项目

Springboot集成Swagger2

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","[email protected]"))
                .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;
    }

 

相关文章: