Swagger在Java项目中的配置

一、Swagger资源下载

①在GitHub上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目/webapp下面。
在这里插入图片描述
②修改其中的index.html文件将 url = “http://petstore.swagger.io/v2/swagger.json“; 改为url=”/v2/api-docs”;

二、添加依赖

compile('io.springfox:springfox-swagger2:2.8.0')
compile('io.springfox:springfox-swagger-ui:2.8.0')
compile 'io.swagger:swagger-jersey2-jaxrs:1.5.8'
compile('com.mangofactory:swagger-springmvc:1.0.2')
compile('com.mangofactory:swagger-models:1.0.2')
compile('com.wordnik:swagger-annotations:1.3.11')*

三、添加配置文件

package cn.cityworks.config;


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;
import springfox.documentation.swagger.web.UiConfiguration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.HashSet;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.cityworks"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {//访问Swagger的地址
        return new ApiInfoBuilder()
                .title("APi接口")
                .description("增删改查服务")
                .termsOfServiceUrl("http://192.168.2.42:9055/swagger-ui.html")
                .version("1.0").build();
    }

    @Bean
    public Docket MapperApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("MapperApi接口")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.cityworks.controller"))
                .paths(PathSelectors.any()).build();
    }
}

四、Controll层添加注解

①Controll类顶部添加注解

@Api(tags="账户")//Swagger注解
@RestController
public class AccountController {

}

②方法添加注解和字段描述(字段描述依据个人字段添加,令牌access_token是本人项目所需)

    @ApiOperation(value="ID查询账户")

    @ApiImplicitParams({    //字段描述
    		@ApiImplicitParam(name = "id",value = "ID",required = true,dataType = "String",paramType="query"),//字段
    		//添加头部access_token令牌
            @ApiImplicitParam(paramType = "header", name = "access_token", value = "访问令牌", required = true, dataType = "String")
            })
//Swagger↑

//底下正常写法
    @RequestMapping(value = "/account/findAccountByID", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String findAccountByID(@RequestParam("id") String id) {
        Account account = accountService.findAccountByID(id);
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.writeValueAsString(account);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return "{\"msg\":\"error\"}";
    }
    

示例:Controller类大致如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/IT_Java_Roy/article/details/89475793