{"id":6943,"date":"2022-11-06T11:33:48","date_gmt":"2022-11-06T02:33:48","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6943"},"modified":"2023-02-14T14:49:07","modified_gmt":"2023-02-14T05:49:07","slug":"spring-boot-springfox-swagger-3-x-%ec%82%ac%ec%9a%a9%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6943","title":{"rendered":"Spring Boot &#8211; springfox-swagger 3.x \uc0ac\uc6a9\ud558\uae30"},"content":{"rendered":"<h1>Spring Boot &#8211; springfox-swagger 3.x \uc0ac\uc6a9\ud558\uae30<\/h1>\n<p>springfox-swagger \uc0ac\uc6a9\ubc95\uc744 \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<h2>\uc758\uc874\uc131 \ucd94\uac00<\/h2>\n<pre><code class=\"language-groovy\">dependencies {\n    implementation &#039;io.springfox:springfox-boot-starter:3.0.0&#039;\n    implementation &#039;io.springfox:springfox-swagger-ui:3.0.0&#039;\n}<\/code><\/pre>\n<h2>\uc124\uc815<\/h2>\n<pre><code class=\"language-java\">@Configuration\n@EnableWebMvc\npublic class SwaggerConfig {\n\n    private ApiInfo swaggerInfo() {\n        return new ApiInfoBuilder().title(&quot;IoT API&quot;)\n                .description(&quot;IoT API Docs&quot;).build();\n    }\n\n    @Bean\n    public Docket swaggerApi() {\n        return new Docket(DocumentationType.SWAGGER_2)\n                .consumes(getConsumeContentTypes())\n                .produces(getProduceContentTypes())\n                .apiInfo(swaggerInfo()).select()\n                .apis(\n                        RequestHandlerSelectors.basePackage(&quot;kr.pe.skyer9.warehouse.item.web&quot;)\n                        .or(RequestHandlerSelectors.basePackage(&quot;kr.pe.skyer9.warehouse.ipchulgo.web&quot;))\n                )\n                .paths(PathSelectors.any())\n                .build()\n                .useDefaultResponseMessages(false);\n    }\n\n    private Set&lt;String&gt; getConsumeContentTypes() {\n        Set&lt;String&gt; consumes = new HashSet&lt;&gt;();\n        consumes.add(&quot;application\/json;charset=UTF-8&quot;);\n        consumes.add(&quot;application\/x-www-form-urlencoded&quot;);\n        return consumes;\n    }\n\n    private Set&lt;String&gt; getProduceContentTypes() {\n        Set&lt;String&gt; produces = new HashSet&lt;&gt;();\n        produces.add(&quot;application\/json;charset=UTF-8&quot;);\n        return produces;\n    }\n\n    @Bean\n    public InternalResourceViewResolver defaultViewResolver() {\n        return new InternalResourceViewResolver();\n    }\n}<\/code><\/pre>\n<h2>\uc801\uc6a9<\/h2>\n<pre><code class=\"language-java\">@RestController\npublic class TestController {\n\n    @GetMapping(value = &quot;\/hello&quot;)\n    @ApiOperation(value = &quot;hello, world api&quot;, notes = &quot;hellow world swagger check&quot;)\n    public String hellowWorld(){\n        return &quot;hello, world&quot;;\n    }\n\n    @ApiOperation(value = &quot;test&quot;, notes = &quot;\ud14c\uc2a4\ud2b8\uc785\ub2c8\ub2e4&quot;)\n    @ApiResponses({\n            @ApiResponse(code = 200, message = &quot;ok&quot;),\n            @ApiResponse(code = 404, message = &quot;page not found!&quot;)\n    })\n    @GetMapping(value = &quot;\/board&quot;)\n    public Map&lt;String, String&gt; selectBoard(@ApiParam(value = &quot;\uc0d8\ud50c\ubc88\ud638&quot;, required = true, example = &quot;1&quot;)\n                                           @RequestParam String no) {\n\n        Map&lt;String, String&gt; result = new HashMap&lt;&gt;();\n        result.put(&quot;test title&quot;, &quot;\ud14c\uc2a4\ud2b8&quot;);\n        result.put(&quot;test contents&quot;, &quot;\ud14c\uc2a4\ud2b8 \ub0b4\uc6a9&quot;);\n        return  result;\n    }\n}<\/code><\/pre>\n<h2>\uc811\uc18d<\/h2>\n<p>localhost:8080\/swagger-ui\/index.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Boot &#8211; springfox-swagger 3.x \uc0ac\uc6a9\ud558\uae30 springfox-swagger \uc0ac\uc6a9\ubc95\uc744 \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4. \uc758\uc874\uc131 \ucd94\uac00 dependencies { implementation &#039;io.springfox:springfox-boot-starter:3.0.0&#039; implementation &#039;io.springfox:springfox-swagger-ui:3.0.0&#039; } \uc124\uc815 @Configuration @EnableWebMvc public class SwaggerConfig { private ApiInfo swaggerInfo() { return new ApiInfoBuilder().title(&quot;IoT API&quot;) .description(&quot;IoT API Docs&quot;).build(); } @Bean public Docket swaggerApi() { return new Docket(DocumentationType.SWAGGER_2) .consumes(getConsumeContentTypes()) .produces(getProduceContentTypes()) .apiInfo(swaggerInfo()).select() .apis( RequestHandlerSelectors.basePackage(&quot;kr.pe.skyer9.warehouse.item.web&quot;) .or(RequestHandlerSelectors.basePackage(&quot;kr.pe.skyer9.warehouse.ipchulgo.web&quot;)) ) .paths(PathSelectors.any()) .build()\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=6943\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-6943","post","type-post","status-publish","format-standard","hentry","category-spring-boot-2-5"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6943"}],"version-history":[{"count":3,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6943\/revisions"}],"predecessor-version":[{"id":7592,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6943\/revisions\/7592"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}