{"id":1125,"date":"2019-01-31T14:17:45","date_gmt":"2019-01-31T06:17:45","guid":{"rendered":"http:\/\/van-yzt.com\/?p=1125"},"modified":"2019-01-31T14:17:45","modified_gmt":"2019-01-31T06:17:45","slug":"swaggerconfig","status":"publish","type":"post","link":"https:\/\/huzi-baozi.com\/?p=1125","title":{"rendered":"SwaggerConfig"},"content":{"rendered":"<p>SpringFox<\/p>\n<pre><code class=\"language-Java\">package com.alibaba.force.api.shared.swagger;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.EnableWebMvc;\nimport springfox.documentation.builders.ParameterBuilder;\nimport springfox.documentation.builders.PathSelectors;\nimport springfox.documentation.builders.RequestHandlerSelectors;\nimport springfox.documentation.schema.ModelRef;\nimport springfox.documentation.service.ApiInfo;\nimport springfox.documentation.service.Contact;\nimport springfox.documentation.service.Parameter;\nimport springfox.documentation.service.Tag;\nimport springfox.documentation.spi.DocumentationType;\nimport springfox.documentation.spring.web.plugins.Docket;\nimport springfox.documentation.swagger2.annotations.EnableSwagger2;\n\n\/**\n * @author van.yzt\n * @date 2017\/07\/31\n *\/\n@Configuration\n@EnableSwagger2\n@EnableWebMvc\npublic class SwaggerConfig {\n    @Bean\n    public Docket healthDocket() {\n        return new Docket(DocumentationType.SWAGGER_2).groupName(&quot;Health&quot;).select()\n            .apis(RequestHandlerSelectors.basePackage(&quot;com.alibaba.force.api.health&quot;))\n            .paths(PathSelectors.any()).build().tags(new Tag(&quot;System API&quot;, &quot;This is for health.&quot;))\n            .useDefaultResponseMessages(false)\n            .apiInfo(apiInfo(&quot;System API&quot;, &quot;This is Force system API&quot;));\n    }\n\n    @Bean\n    public Docket internalDocket() {\n        return new Docket(DocumentationType.SWAGGER_2).groupName(&quot;Internal&quot;).select()\n            .apis(RequestHandlerSelectors.basePackage(&quot;com.alibaba.force.api.internal&quot;))\n            .paths(PathSelectors.any()).build().tags(new Tag(&quot;System API&quot;, &quot;This is for internal API.&quot;))\n            .useDefaultResponseMessages(false)\n            .globalOperationParameters(privateToken())\n            .apiInfo(apiInfo(&quot;Internal API&quot;, &quot;This is Force internal API&quot;));\n    }\n\n    @Bean\n    public Docket repositoryDocket() {\n        return new Docket(DocumentationType.SWAGGER_2).groupName(&quot;Repository&quot;).select()\n            .apis(RequestHandlerSelectors.basePackage(&quot;com.alibaba.force.api.repository&quot;))\n            .paths(PathSelectors.any()).build().tags(new Tag(&quot;Repository API&quot;, &quot;This is for repository api.&quot;))\n            .useDefaultResponseMessages(false)\n            .globalOperationParameters(privateToken())\n            .apiInfo(apiInfo(&quot;Repository API&quot;, &quot;This is Force repository API&quot;));\n    }\n\n    @Bean\n    public Docket userDocket() {\n        return new Docket(DocumentationType.SWAGGER_2).groupName(&quot;User&quot;).select()\n            .apis(RequestHandlerSelectors.basePackage(&quot;com.alibaba.force.api.user&quot;))\n            .paths(PathSelectors.any()).build().tags(new Tag(&quot;User API&quot;, &quot;This is for user api.&quot;))\n            .useDefaultResponseMessages(false)\n            .globalOperationParameters(privateToken())\n            .apiInfo(apiInfo(&quot;User API&quot;, &quot;This is Force user API&quot;));\n    }\n\n    @Bean\n    public Docket keyDocket() {\n        return new Docket(DocumentationType.SWAGGER_2).groupName(&quot;Key&quot;).select()\n            .apis(RequestHandlerSelectors.basePackage(&quot;com.alibaba.force.api.key&quot;))\n            .paths(PathSelectors.any()).build().tags(new Tag(&quot;Key API&quot;, &quot;This is for key api.&quot;))\n            .useDefaultResponseMessages(false)\n            .globalOperationParameters(privateToken())\n            .apiInfo(apiInfo(&quot;Key API&quot;, &quot;This is Force key API&quot;));\n    }\n\n    private List&lt;Parameter&gt; privateToken() {\n        return new ArrayList&lt;Parameter&gt;() {{\n            add(new ParameterBuilder()\n                .name(&quot;private_token&quot;)\n                .description(&quot;Private token for person&quot;)\n                .modelRef(new ModelRef(&quot;String&quot;))\n                .parameterType(&quot;query&quot;)\n                .required(true)\n                .build());\n        }};\n    }\n\n    private ApiInfo apiInfo(String title, String description) {\n        return new ApiInfo(title, description, &quot;v3&quot;, &quot;&quot;, DEFAULT_CONTACT, null, null);\n    }\n\n    private static final Contact DEFAULT_CONTACT = new Contact(&quot;van.yzt&quot;,\n        &quot;https:\/\/lark.alipay.com\/aone\/code+voice\/gt7niw&quot;, &quot;van.yzt@alibaba-inc.com&quot;);\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>SpringFox package com.alibaba.force.api.shared.swagger; import java.util.ArrayList; import java.util.List; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.service.Tag; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; \/** * @author van.yzt * @date 2017\/07\/31 *\/ @Configuration @EnableSwagger2 @EnableWebMvc public class SwaggerConfig { @Bean public Docket healthDocket() { &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/huzi-baozi.com\/?p=1125\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;SwaggerConfig&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1125","post","type-post","status-publish","format-standard","hentry","category-snippet"],"_links":{"self":[{"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/posts\/1125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1125"}],"version-history":[{"count":1,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/posts\/1125\/revisions"}],"predecessor-version":[{"id":1126,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=\/wp\/v2\/posts\/1125\/revisions\/1126"}],"wp:attachment":[{"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huzi-baozi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}