{"id":871,"date":"2021-04-17T12:50:00","date_gmt":"2021-04-17T04:50:00","guid":{"rendered":"http:\/\/www.langmanezhuang.com\/index.php\/2021\/04\/17\/springboot%e9%9b%86%e6%88%90swagger\/"},"modified":"2021-04-17T12:50:00","modified_gmt":"2021-04-17T04:50:00","slug":"springboot%e9%9b%86%e6%88%90swagger","status":"publish","type":"post","link":"http:\/\/blog.langmanezhuang.com\/index.php\/2021\/04\/17\/springboot%e9%9b%86%e6%88%90swagger\/","title":{"rendered":"Springboot\u96c6\u6210swagger"},"content":{"rendered":"<p>1.\u5f15\u5165jar\u5305<\/p>\n<div class=\"cnblogs_Highlighter\" style=\"text-align: left;\">\n<pre class=\"brush:html;gutter:true;\">\t\t&lt;!-- springfox-swagger --&gt;\n\t    &lt;dependency&gt;\n\t        &lt;groupId&gt;io.springfox&lt;\/groupId&gt;\n\t        &lt;artifactId&gt;springfox-boot-starter&lt;\/artifactId&gt;\n\t        &lt;version&gt;3.0.0&lt;\/version&gt;\n\t    &lt;\/dependency&gt;\n<\/pre>\n<\/div>\n<p>2.\u7f16\u5199\u914d\u7f6e\u7c7b<\/p>\n<div class=\"cnblogs_Highlighter\">\n<pre class=\"brush:java;gutter:true;\">package com.qyc.Microservice.config;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.core.env.AbstractEnvironment;\n\nimport springfox.documentation.builders.ApiInfoBuilder;\nimport springfox.documentation.builders.PathSelectors;\nimport springfox.documentation.builders.RequestHandlerSelectors;\nimport springfox.documentation.service.Contact;\nimport springfox.documentation.spi.DocumentationType;\nimport springfox.documentation.spring.web.plugins.Docket;\nimport springfox.documentation.swagger2.annotations.EnableSwagger2;\n\n\n\/**\n * \u8bbf\u95ee\u5730\u5740\uff1a\n *   \/swagger-ui\/index.html\n *\/\n@Configuration\n@EnableSwagger2\npublic class SwaggerConfig {\n\t\n    @Autowired\n    private AbstractEnvironment env;\n\t\n    @Bean\n    public Docket createRestApi() {\n    \t\/\/\u662f\u5426\u5f00\u542fswagger\uff0c\u6b63\u5f0f\u73af\u5883\u4e00\u822c\u662f\u9700\u8981\u5173\u95ed\u7684\uff08\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u6f0f\u6d1e\u66b4\u9732\uff01\uff09\uff0c\u53ef\u6839\u636espringboot\u7684\u591a\u73af\u5883\u914d\u7f6e\u8fdb\u884c\u8bbe\u7f6e\n    \tString swaggerflag = env.getProperty(\"swagger.enable\");\n    \t\n    \tif(\"true\".equals(swaggerflag)){\n            return new Docket(DocumentationType.SWAGGER_2)\n                    .pathMapping(\"\/\")\n                    .select()\n                    .apis(RequestHandlerSelectors.basePackage(\"com.qyc.Microservice.controller\"))\n                    .paths(PathSelectors.any())\n                    .build().apiInfo(new ApiInfoBuilder()\n                            .title(\"\u9879\u76ee\u63a5\u53e3\u63a5\u53e3\u8bf4\u660e\")\n                            .description(\"\u8be6\u7ec6\u4fe1\u606f......\")\n                            .version(\"1.0\")\n                            .contact(new Contact(\"JoePotter\",\"https:\/\/www.cnblogs.com\/JoePotter\/\",\"252177507@qq.com\"))\n                            .license(\"The Apache License\")\n                            .licenseUrl(\"https:\/\/www.cnblogs.com\/JoePotter\/\")\n                            .build());\n    \t}else {\n            return new Docket(DocumentationType.SWAGGER_2)\n                    .pathMapping(\"\/\")\n                    .select()\n                    .apis(RequestHandlerSelectors.basePackage(\"com.qyc.Microservice.controller\"))\n                    .paths(PathSelectors.any())\n                    .build().apiInfo(new ApiInfoBuilder()\n                            .title(\"\u9879\u76ee\u63a5\u53e3\u63a5\u53e3\u8bf4\u660e\")\n                            .description(\"\u8be6\u7ec6\u4fe1\u606f......\")\n                            .version(\"1.0\")\n                            .contact(new Contact(\"JoePotter\",\"https:\/\/www.cnblogs.com\/JoePotter\/\",\"252177507@qq.com\"))\n                            .license(\"The Apache License\")\n                            .licenseUrl(\"https:\/\/www.cnblogs.com\/JoePotter\/\")\n                            .build()).enable(false);\n    \t}\n    }\n}\n<\/pre>\n<\/div>\n<p>3.\u5bf9\u63a5\u53e3\u548c\u5b9e\u4f53\u7c7b\u6dfb\u52a0\u6ce8\u91ca\uff0c\u751f\u6210doc\u3002\u5e38\u7528\u7684\u6807\u8bb0\u5982\u4e0b<\/p>\n<p>@Api()\u7528\u4e8e\u7c7b\uff1b<br \/>\u6807\u8bc6\u8fd9\u4e2a\u7c7b\u662fswagger\u7684\u8d44\u6e90<br \/>\u3000\u3000tags&ndash;\u8868\u793a\u5206\u7ec4\u8bf4\u660e\u6807\u7b7e<\/p>\n<p>@ApiOperation()\u7528\u4e8e\u65b9\u6cd5\uff1b<br \/>\u8868\u793a\u4e00\u4e2ahttp\u8bf7\u6c42\u7684\u64cd\u4f5c<br \/>\u3000\u3000value\u7528\u4e8e\u65b9\u6cd5\u63cf\u8ff0 <\/p>\n<p>\u3000\u3000notes\u7528\u4e8e\u63d0\u793a\u5185\u5bb9<\/p>\n<p>@ApiModel()\u7528\u4e8e\u5b9e\u4f53\u7c7b<br \/>\u8868\u793a\u5bf9\u7c7b\u8fdb\u884c\u8bf4\u660e\uff0c\u7528\u4e8e\u53c2\u6570\u7528\u5b9e\u4f53\u7c7b\u63a5\u6536<\/p>\n<p>      value&ndash;\u8868\u793a\u5bf9\u8c61\u540d <br \/>      description&ndash;\u63cf\u8ff0<\/p>\n<p>@ApiModelProperty()\u7528\u4e8e\u5b9e\u4f53\u7c7b\u5b57\u6bb5<br \/>\u8868\u793a\u5bf9model\u5c5e\u6027\u7684\u8bf4\u660e\u6216\u8005\u6570\u636e\u64cd\u4f5c\u66f4\u6539<br \/>\u3000\u3000value&ndash;\u5b57\u6bb5\u8bf4\u660e <br \/>\u3000\u3000name&ndash;\u91cd\u5199\u5c5e\u6027\u540d\u5b57 <br \/>\u3000\u3000dataType&ndash;\u91cd\u5199\u5c5e\u6027\u7c7b\u578b <br \/>\u3000\u3000required&ndash;\u662f\u5426\u5fc5\u586b <br \/>\u3000\u3000example&ndash;\u4e3e\u4f8b\u8bf4\u660e <br \/>\u3000\u3000hidden&ndash;\u9690\u85cf<\/p>\n<p>@ApiImplicitParam() \u7528\u4e8e controller \u65b9\u6cd5<br \/>\u8868\u793a\u5355\u72ec\u7684\u8bf7\u6c42\u53c2\u6570<br \/>\u3000\u3000name&ndash;\u53c2\u6570ming<br \/>\u3000\u3000value&ndash;\u53c2\u6570\u8bf4\u660e<br \/>\u3000\u3000dataType&ndash;\u6570\u636e\u7c7b\u578b<br \/>\u3000\u3000paramType&ndash;\u53c2\u6570\u7c7b\u578b<br \/>\u3000\u3000example&ndash;\u4e3e\u4f8b\u8bf4\u660e<\/p>\n<p>@ApiImplicitParams() \u7528\u4e8e controller \u65b9\u6cd5\uff0c\u5305\u542b\u591a\u4e2a @ApiImplicitParam<\/p>\n<p>@ApiIgnore()\u7528\u4e8e\u7c7b\u6216\u8005\u65b9\u6cd5\u4e0a\uff0c\u53ef\u4ee5\u4e0d\u88abswagger\u663e\u793a\u5728\u9875\u9762\u4e0a<\/p>\n<p><span style=\"color: #ff0000;\">\u8bf4\u660e\uff1a\u7b80\u5355\u7684\u6807\u8bb0\u53ea\u9700\u8981@Api(tags=&#8221;&#8221;) \u548c @ApiOperation(value=&#8221;&#8221;,notes=&#8221;&#8221;)<\/span><\/p>\n<div class=\"cnblogs_Highlighter\">\n<pre class=\"brush:java;gutter:true;\">@RestController\n@RequestMapping(\"\/user\")\n<span style=\"color: #ff0000;\">@Api(tags = \"\u7528\u6237\u767b\u5f55\")<\/span>\npublic class LoginController extends BaseController {\n\n\t@Autowired\n\tprivate UserService userService;\n\t\n\t@PostMapping(\"\/save\")\n\t<span style=\"color: #ff0000;\">@ApiOperation(value = \"\u65b0\u5efa\u7528\u6237\uff01\",notes = \"\u63d0\u793a\u4fe1\u606f\u3002\")<\/span>\n\tpublic void save(@Valid User user) {\n\t\tuserService.saveMapper( user);\n\t}\n<\/pre>\n<\/div>\n<p>\u3000\u3000<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.\u5f15\u5165jar\u5305 &lt;!&#8211; springfox-swagger &#8211;&gt; &lt;dependenc &hellip; <a href=\"http:\/\/blog.langmanezhuang.com\/index.php\/2021\/04\/17\/springboot%e9%9b%86%e6%88%90swagger\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb <span class=\"screen-reader-text\">Springboot\u96c6\u6210swagger<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/posts\/871"}],"collection":[{"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/comments?post=871"}],"version-history":[{"count":0,"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/posts\/871\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/media?parent=871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/categories?post=871"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.langmanezhuang.com\/index.php\/wp-json\/wp\/v2\/tags?post=871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}