文档!重要的事情说第四遍~-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

文档!重要的事情说第四遍~

简介: 之前我有提过文档的事,标题是《文档!文档!文档!重要的事情说三遍!》,其中提到的文档工具是使用wiki来管理文档,当然也能配合jira来分发任务,以及管理bug,查看每个任务的工作流状态等等   今天来讲讲另外一个文档工具,swagger+spring,这个插件比较好用,非常适合那种敏捷开发的小...

之前我有提过文档的事,标题是《文档!文档!文档!重要的事情说三遍!》,其中提到的文档工具是使用wiki来管理文档,当然也能配合jira来分发任务,以及管理bug,查看每个任务的工作流状态等等

 

今天来讲讲另外一个文档工具,swagger+spring,这个插件比较好用,非常适合那种敏捷开发的小团队,不像wiki那么繁琐,更没有word或者excel那么难以管理,使用这个工具,你只需要在代码中配置好相应的注解,在spring容器加载的时候就自动扫描进去了,使用非常方便,那么先来简单看看吧

首先需要配置pom,引入相应的jar包

<!-- swagger-springmvc -->
            <dependency>
                <groupId>com.mangofactory</groupId>
                <artifactId>swagger-springmvc</artifactId>
                <version>${mangofactory.swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mangofactory</groupId>
                <artifactId>swagger-models</artifactId>
                <version>${mangofactory.swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>com.wordnik</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger-annotations.version}</version>
            </dependency>
            <!-- swagger-springmvc dependencies -->
<!--             <dependency> -->
<!--                 <groupId>com.google.guava</groupId> -->
<!--                 <artifactId>guava</artifactId> -->
<!--                 <version>15.0</version> -->
<!--             </dependency> -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml</groupId>
                <artifactId>classmate</artifactId>
                <version>${classmate.version}</version>
            </dependency>

配置好SwaggerConfig这个类,内容如下:

package com.dingli.rest.config;

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * 
 * @Title: SwaggerConfig.java
 * @Package com.dingli.rest.config
 * @Description: SwaggerConfig 的配置,需要加入spring容器
 * Copyright: Copyright (c) 2016
 * Company:DINGLI.SCIENCE.AND.TECHNOLOGY
 * 
 * @author leechenxiang
 * @date 2016年9月14日 上午9:55:42
 * @version V1.0
 */
@Configuration
@EnableSwagger
public class SwaggerConfig {

    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;
    }
}

然后你要去github上找到这个项目,然后下载后吧dlist中的所有内容导入到自己的项目中,在index.html中修改路径,

http://petstore.swagger.io/v2/swagger.json";

这个是加载json,需要把这个段替换为你自己的地址:"http://localhost:8080/swagger-ui.html"

最后访问你就会得到对应的界面了

好了,OK,十分简单的配置,但是绝提的接口对于参数等等,自己看api吧,十分简单,非常适合小团队开发

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章