1. 程式人生 > >swagger生成接口文檔和map類型參數解析

swagger生成接口文檔和map類型參數解析

get doc none agg for show 依賴 接口 ica

一:swagger是什麽?

1、是一款讓你更好的書寫API文檔的規範且完整框架。
2、提供描述、生產、消費和可視化RESTful Web Service。
3、是由龐大工具集合支撐的形式化規範。這個集合涵蓋了從終端用戶接口、底層代碼庫到商業API管理的方方面面。

方法一:使用第三方依賴(最簡單的方法)

1、在pom.xml文件中添加第三方swagger依賴()

技術分享圖片
    <dependency>
        <groupId>com.spring4all</groupId>
        <artifactId>swagger-spring-boot-starter</
artifactId> <version>1.7.0.RELEASE</version> </dependency>
View Code

2、在Spring Boot項目的啟動類上添加@EnableSwagger2Doc註解,就可以直接使用啦。
3、https://github.com/SpringForAll/spring-boot-starter-swagger這是GitHub上這個swagger依賴實現的項目,裏面有詳細的講解。

方法二:使用官方依賴

1、在pom.xml文件中添加swagger相關依賴
技術分享圖片
 <
dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${springfox-version}</version> </dependency> <dependency> <groupId>io.springfox</
groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${springfox-version}</version> </dependency>
View Code
第一個是API獲取的包,第二是官方給出的一個ui界面。這個界面可以自定義,默認是官方的,對於安全問題,以及ui路由設置需要著重思考。
2、swagger的configuration

需要特別註意的是swagger scan base package,這是掃描註解的配置,即你的API接口位置。

技術分享圖片
@Configuration
@EnableSwagger2
public class Swagger2 {

        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.yss.ms.admin"))
                    .paths(PathSelectors.any())
                    .build();
        }

        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("服務:發布為daocke鏡像,權限管理,用戶管理,頁面管理,日誌 後臺 APIs")
                    .description("服務:發布為daocke鏡像,權限管理,用戶管理,頁面管理,日誌 後臺")
                    .termsOfServiceUrl("http://192.168.103.198:10070/platformgroup/ms-admin")
                    .contact("程序猿DD")
                    .version("1.0")
                    .build();
        }

    }
View Code

三、具體使用

1、在API上做一些聲明
技術分享圖片
@RequestMapping("/swagger/test/map")
    @ApiOperation(value="xxxx", tags = "xxxx")
    @ApiImplicitParams({
            @ApiImplicitParam(name="name", dataType = "string", value = "only return models...")
    })
    @ApiResponses(value = {
            @ApiResponse(code = 200, message="Indicates ..."),
            @ApiResponse(code = 404, message = "not found error")
    })
    public Result<String> testSwaggerMap(Map map){
        return null;
    }
View Code

swagger生成接口文檔和map類型參數解析