SpringMvc 快速集成swagger2

原创 2018年01月07日 17:05:18

swagger:restful管理项目API工具

1、pom.xml增加依赖包


        <dependency>  
            <groupId>io.springfox</groupId>  
            <artifactId>springfox-swagger2</artifactId>  
            <version>2.7.0</version>  
        </dependency>  
        <dependency>  
            <groupId>io.springfox</groupId>  
            <artifactId>springfox-swagger-ui</artifactId>  
            <version>2.7.0</version>  
        </dependency>  
  

2、在spring-mvc.xml中声明swagger配置bean


在application.xml添加配置,如果使用spring boot此步骤忽略
<bean class="com.aoji.protal.pc.common.component.Swagger2" id="swagger2Config"/>


java类代码

    /**
     * Swagger2配置类
     * 在与spring boot集成时,放在与Application.java同级的目录下。
     * 通过@Configuration注解,让Spring来加载该类配置。
     * 再通过@EnableSwagger2注解来启用Swagger2。
     */
    @Configuration
    @EnableWebMvc
    @EnableSwagger2
    public class Swagger2 extends WebMvcConfigurationSupport
    {
    
        /**
         * 创建API应用
         * apiInfo() 增加API相关信息
         * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
         * 本例采用指定扫描的包路径来定义指定要建立API的目录。
         * @return
         */
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.aoji.protal.pc.
                    h5.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        /**
         * 创建该API的基本信息(这些基本信息会展现在文档页面中)
         * 访问地址:http://项目实际地址/swagger-ui.html
         * @return
         */
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("Spring Boot中使用Swagger2构建RESTful APIs")
                    .title("Spring 中使用Swagger2构建RESTful APIs")
                    .termsOfServiceUrl("http://www.aoji.cn")
                    .contact("澳际教育")
                    .version("1.0")
                    .build();
        }
    }

3、在spring-mvc.xml中声明swagger配置bean


<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/>  
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>  


如果是spring boot,则需要在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/");

    }

这是我其中一个项目中的例子:



4、通过以上配置启动项目访问即可看到


localhost:8080/swagger-ui.html  


5.依照swagger规范配置接口调用说明

/**
     * 分支互动列表
     * @return
     */
    @RequestMapping(value = "/h5/lecturelist", method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation(value="查询面试活动列表", notes="不传国家码时返回5大国所有的活动列表,每个国家最多返回8条数据")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType="query", name = "countryCode", value = "国家码", required = false, dataType = "String"),
            @ApiImplicitParam(paramType="query", name = "page", value = "分页对象", required = false, dataType = "Page"),
    })
    public AjaxJson getLectureList(String countryCode,Page page)
    {
        //代码    
    }
    
    
    
实体:

@ApiModel(value = "分页对象", description = "分页")
public class Page {
    public static final int DEFAUTLPAGESIZE = 10;
    public static final int[] OPTIONALPAGESIZE = {10,20,30,40,50,100,200,300,500};
    private int total = 0;

    @ApiModelProperty(value = "每页数据大小", required = false)
    private int pageSize = DEFAUTLPAGESIZE;
    private List<? extends Object> data = new ArrayList();

    @ApiModelProperty(value = "页码", required = false)
    private Integer pageIndex = 1;

    

6.访问文档截图


springMVC整合swagger(亲自试验完全可用)

swagger是什么: Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagger的方法和一些常见问题。如果想深入分析项目源码,了解更多内...
  • y534560449
  • y534560449
  • 2016年12月16日 16:35
  • 13834

SpringMVC与Swagger整合

一 :添加依赖 com.mangofactory swagger-springmvc 1.0.2 com.mangofactory swagger-...
  • liangwenmail
  • liangwenmail
  • 2017年08月31日 11:13
  • 469

SpringMVC+Swagger UI生成可视图的API文档(详细图解)

SpringMVC+Swagger生成文档详细图解,以及遇到的异常处理
  • u011499992
  • u011499992
  • 2016年12月04日 19:16
  • 26342

初次尝试swagger springmvc集成 生成restful api文档

集成 springmvc swagger ui 走过的坑,detectedType.toLowerCase is not a function 终于解决了这个错误...
  • qq_35901623
  • qq_35901623
  • 2017年11月05日 12:00
  • 130

Swagger与SpringMVC项目整合

Swagger与SpringMVC项目整合
  • fengspg
  • fengspg
  • 2015年02月11日 08:34
  • 37324

SwaggerUI+SpringMVC——构建RestFul API的可视化界面

SwaggerUI RESTFUL API。 我们都知道,接口文档是非常重要的,但是随着代码的不断更新,文档却很难持续跟着更新,今天要介绍的工具,完美的解决了这个问题。而且,对于要使用我们接口的人来说...
  • lbq613613
  • lbq613613
  • 2015年08月10日 15:24
  • 6365

Restful形式接口文档生成之Swagger与SpringMVC整合手记

笔者目前正在搭建一套API服务框架,考虑到客户端能够更方便的调用API服务(这里说的更方便是指避免不厌其烦地解说各接口需要的参数和返回结果),于是决心为每个接口生成详细的说明文档。网上搜索了一下,发现...
  • linlzk
  • linlzk
  • 2016年02月24日 10:21
  • 34078

springMVC整合swagger(亲自试验完全可用)

swagger是什么:[plain] view plain copy print?Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagger...
  • zhangdaiscott
  • zhangdaiscott
  • 2017年10月31日 14:54
  • 507

Swagger 与 SpringMVC 整合的步骤

1、添加 Swagger 与 SpringMVC 的依赖 com.mangofactory swagger-springmvc 1.0.2 com.f...
  • lw_power
  • lw_power
  • 2016年02月14日 18:37
  • 3884

Spring3 MVC中使用Swagger生成API文档

swagger集成springMVC框架,自动生成接口文档与测试框架。
  • jia20003
  • jia20003
  • 2016年02月19日 23:16
  • 40672
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringMvc 快速集成swagger2
举报原因:
原因补充:

(最多只允许输入30个字)