SpringMVC集成Swagger

2017-08-18  本文已影响0人  anotherme17

简介

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,可以和Spring很好的结合。
Swagger是个比较大的项目,本文主要介绍如何与SpringMVC结合生成RESTful风格的文档.

环境

spring 的版本是 4.0.2.RELEASE
swagger 用的是1
swagger-ui 版本 2.2.10

Maven

 <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>1.0.2</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${version.jackson}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${version.jackson}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${version.jackson}</version>
        </dependency>
     <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <version.jackson>2.4.4</version.jackson>
    </properties>

Swagger 配置

本文使用的swagger1
swagger2配置使用的是Springfox,请参考另外教程
在项目中用java写一个配置文件

@Configuration
@EnableSwagger
@EnableWebMvc
@ComponentScan("[扫描接口]")
public class MySwaggerConfig {

    private SpringSwaggerConfig springSwaggerConfig;

    /**
     * Required to autowire SpringSwaggerConfig
     */
    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
    {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    /**
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
     * framework - allowing for multiple swagger groups i.e. same code base
     * multiple swagger resource listings.
     */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation()
    {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(apiInfo())
                .includePatterns(".*?");
    }

    private ApiInfo apiInfo()
    {
        ApiInfo apiInfo = new ApiInfo(
                "My Apps API Title",
                "My Apps API Description",
                "My Apps API terms of service",
                "My Apps API Contact Email",
                "My Apps API Licence Type",
                "My Apps API License URL");
        return apiInfo;
    }
}

然后在Spring配置文件中声明

    <!--正式发布时注释掉-->
    <bean class="com.keqiang.swagger.MySwaggerConfig"/>

接下来下载 Swagger-ui 把dist文件中的所有东西拷贝到web根目录下(放在其他的放也是可以的,只要能访问的到)

修改index.html文件中的路径:
默认是从连接http://petstore.swagger.io/v2/swagger.json获取API的JSON,我们改为 http://{ip}:{port}/{projectName}/api-docs 的形式,也就ip:端口号/项目名/api-docs

注解参数

不是十分详细 可以参考下面的网站
swagger常用注解说明

参考网址

Swagger 官网
Swagger-ui
Swagger 简介
Swagger 博客
基于swagger的RESTful API开发实践
如何编写基于OpenAPI规范的API文档
API文档工具-Swagger的集成

上一篇 下一篇

猜你喜欢

热点阅读