springboot集成swagger2

来源:互联网 发布:存档软件安卓版 编辑:程序博客网 时间:2024/05/16 10:52

1、所需jar包

<dependency><groupId>io.springfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>${springfox.version}</version></dependency><dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>${springfox.version}</version></dependency>

2、SwaggerConfig.java

package fmc.eq;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.context.request.async.DeferredResult;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import com.google.common.base.Predicates;/** * swagger2的API设置 *  * @author Davis * @date 2017年6月7日 下午6:04:39 */@Configuration@EnableSwagger2public class SwaggerConfig {    @SuppressWarnings("unchecked")    @Bean    public Docket api() {        return new Docket(DocumentationType.SWAGGER_2)                .groupName("rest")                .genericModelSubstitutes(DeferredResult.class)                .useDefaultResponseMessages(false).forCodeGeneration(false)                .pathMapping("/")                .select()                .paths(Predicates.or(PathSelectors.regex("/rest/.*")))// 过滤的接口                .build()                .apiInfo(apiInfo());    }     private ApiInfo apiInfo() {        return new ApiInfoBuilder().title("资产管理相关接口")                .description("api").termsOfServiceUrl("")                .version("1.0").build();    }}

3、Controller层

package fmc.eq.web;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import javax.servlet.http.HttpServletRequest;  import fmc.common.resp.ListResult;import fmc.common.resp.ResponseResult;import fmc.eq.common.base.dto.FileSuccessResponse;import fmc.eq.common.base.dto.UploadFile; import fmc.eq.common.base.entity.enums.FileTypeEnum;import fmc.eq.common.consumer.AttachmentController; import fmc.eq.common.utils.StringUtil; import fmc.eq.exception.AssetModuleException;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestHeader;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController; /** * 文件上传 *  * @author Davis * @date 2017年8月4日 */@RestController@Api(value = "文件上传", tags = "文件上传")@RequestMapping("/rest/asset")public class UploadController {    @Autowired    private AttachmentController attachmentController;     private static Logger logger = Logger.getLogger(UploadController.class);    @RequestMapping(value = "/detail/upload/images", method = RequestMethod.POST)    @ApiOperation(value="上传资产图片", notes="上传资产图片")     public ResponseResult uploadImage(                @ApiParam(name = "accessToken", value = "操作令牌", required = true)   @RequestHeader(value = "accessToken", required = true) String accessToken,                @ApiParam(name = "projId", value = "项目Id", required = true) @RequestHeader(value = "projId", required = true) Long projId,                @ApiParam(name = "entity", value = "数据实体", required = true) @RequestBody UploadFile entity                ){        try{             return attachmentController.uploadFilesService(accessToken, projId.toString(), entity.getId().toString(), "eq_asset", FileTypeEnum.ASSET_IMAGE.getKey(), entity.getIds());        }catch (Exception e) {            logger.error("上传资产图片异常!", e);            throw new AssetModuleException("上传资产图片异常!",e);        }     }  }

这里写图片描述