Spring MVC中使用 Swagger2 構建Restful API
0.Spring MVC配置檔案中的配置
<!-- 設定使用註解的類所在的jar包,只加載controller類 -->
<span style="white-space:pre"> </span><context:component-scan base-package="com.jay.plat.config.controller" />
<!-- 使用 Swagger Restful API文件時,新增此註解 -->
<mvc:default-servlet-handler />
1.maven依賴
<!-- 構建Restful API --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>
2.Swagger配置檔案
package com.jay.plat.config.util; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /* * Restful API 訪問路徑: * http://IP:port/{context-path}/swagger-ui.html * eg:http://localhost:8080/jd-config-web/swagger-ui.html */ @EnableWebMvc @EnableSwagger2 @ComponentScan(basePackages = {"com.<span style="font-family:Arial, Helvetica, sans-serif;">jay.</span>plat.config.controller"}) @Configuration public class RestApiConfig extends WebMvcConfigurationSupport{ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.jay.plat.config.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring 中使用Swagger2構建RESTful APIs") .termsOfServiceUrl("http://blog.csdn.net/he90227") .contact("逍遙飛鶴") .version("1.1") .build(); } }
配置說明:
@Configuration 配置註解,自動在本類上下文載入一些環境變數資訊
@EnableWebMvc
@EnableSwagger2 使swagger2生效
@ComponentScan("com.myapp.packages") 需要掃描的包路徑
3.Controller中使用註解新增API文件
package com.jay.spring.boot.demo10.swagger2.controller; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.jay.spring.boot.demo10.swagger2.bean.User; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping(value = "/users") // 通過這裡配置使下面的對映都在/users下,可去除 public class UserController { static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>()); @ApiOperation(value = "獲取使用者列表", notes = "") @RequestMapping(value = { "" }, method = RequestMethod.GET) public List<User> getUserList() { List<User> r = new ArrayList<User>(users.values()); return r; } @ApiOperation(value = "建立使用者", notes = "根據User物件建立使用者") @ApiImplicitParam(name = "user", value = "使用者詳細實體user", required = true, dataType = "User") @RequestMapping(value = "", method = RequestMethod.POST) public String postUser(@RequestBody User user) { users.put(user.getId(), user); return "success"; } @ApiOperation(value = "獲取使用者詳細資訊", notes = "根據url的id來獲取使用者詳細資訊") @ApiImplicitParam(name = "id", value = "使用者ID", required = true, dataType = "Long") @RequestMapping(value = "/{id}", method = RequestMethod.GET) public User getUser(@PathVariable Long id) { return users.get(id); } @ApiOperation(value = "更新使用者詳細資訊", notes = "根據url的id來指定更新物件,並根據傳過來的user資訊來更新使用者詳細資訊") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "使用者ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "user", value = "使用者詳細實體user", required = true, dataType = "User") }) @RequestMapping(value = "/{id}", method = RequestMethod.PUT) public String putUser(@PathVariable Long id, @RequestBody User user) { User u = users.get(id); u.setName(user.getName()); u.setAge(user.getAge()); users.put(id, u); return "success"; } @ApiOperation(value = "刪除使用者", notes = "根據url的id來指定刪除物件") @ApiImplicitParam(name = "id", value = "使用者ID", required = true, dataType = "Long") @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) public String deleteUser(@PathVariable Long id) { users.remove(id); return "success"; } }
4.效果展示
訪問路徑:Restful API 訪問路徑:
* http://IP:port/{context-path}/swagger-ui.html
* eg:http://localhost:8080/jd-config-web/swagger-ui.html
參考: http://www.cnblogs.com/yuananyun/p/4993426.html
http://www.jianshu.com/p/8033ef83a8ed
相關推薦
第六篇:Spring Boot整合Swagger2構建RESTful API文件
由於Spring Boot有快速開發、便捷部署等特性,所以很大一部分Spring Boot的使用者會用來構建RESTfulAPI。而我們構建RESTfulAPI的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。
Spring boot 使用Swagger2構建RESTful API文件
前言 SwaggerUI可以說是一個非常好用的API文件工具,是前後端分離開發模式下的必備工具、具體實現及部分乾貨知識如下 匯入依賴 <!-- RESTful APIs swagger2 --> <dependency> <
Spring MVC中使用 Swagger2 構建Restful API
0.Spring MVC配置檔案中的配置 <!-- 設定使用註解的類所在的jar包,只加載controller類 --> <span style="white-space:pre"> </span><context:compone
dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3(十)之Spring MVC中使用 Swagger2 構建Restful API
1、Swagger2是什麼? Swagger 是一款RESTFUL介面的文件線上自動生成+功能測試功能軟體。 Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以
Spring Boot 中使用 Swagger2 構建 RESTFUL API 文件
由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的使用者會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層來同時服務於多個移動端或者Web前端。
Spring Boot 使用Swagger2構建RESTful風格的API線上文件 & 專案總結
之前做的專案中前後端完全分離,前端為嵌在手機app中的H5,後端需求限定了語言為Java,而且所給的時間非常少。 於是能夠快速搭建配置部署的Spring Boot專案就成了不二之選,加上Swagger2能夠方便的幫助我們構建出功能強大的線上介面文件,方便測試人
使用spring mvc或者resteasy構建restful服務
很好 trap 如何 系統 路徑 查找 factor 執行 閱讀 看到最近一個項目裏用resteasy來構建restful接口,有點不明白,不少Spring mvc4.0以後也可以很方面的實現restful服務嗎,為啥還要在Spring MVC的項目裏還引入resteasy
企業分布式微服務雲SpringCloud SpringBoot mybatis (二十五)集成swagger2構建Restful API
sel ima eth syn conf ring 但是 batis 關註 一、引入依賴 <dependency> <groupId>io.springfox</groupId> <
Spring MVC中使用Swagger生成API文件和完整專案示例Demo,swagger
轉載自:http://www.360doc.com/content/17/0914/17/16915_687184334.shtml 實際專案中非常需要寫文件,提高Java服務端和Web前端以及移動端的對接效率。 聽說Swagger這
整合swagger2構建Restful API
整合swagger2構建Restful API 在pom.xml中進行版本管理 <swagger.version>2.8.0</swagger.version> 給taosir-api的pom.xml中新增依賴配置 <!-- swagger start -
Spring MVC中使用Swagger生成API文件和完整專案示例Demo,swagger-server-api
package cn.fansunion.swagger.serverapi.controller; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org
[springboot::]整合swagger2,構建RESTful api
1.本來以為會很容易整合的,結果一直報404,試了好久,心累…最後終於找到解決辦法 http://localhost:8080/swagger-ui.html 訪問不到,原因是,是因為 MVC 沒有找到 swagger-ui 包中的 swagger-ui.html 檔案; 但是這個檔案在ja
Springboot 學習筆記 之 Day 5 如何加密,以及用Swagger2構建Restful API
先看一下使用Swagger2構建Restful API效果圖 超級簡單的,只需要在pom 中引用如下jar包 <dependency> <groupId>io.springfox</group
SpringBoot+Swagger2構建 RESTful API文件報org.thymeleaf.exceptions.TemplateInputException的錯誤
在是使用Swagger2構建RESTful API時,報TemplateInputException錯誤: org.thymeleaf.exceptions.TemplateInputException: Error resolving template "user/getById/1", t
SpringBoot整合springfox-swagger2構建restful API
上面文章SpringMVC整合springfox-swagger2構建restful API簡單寫了如何在springmvc中整合swagger2。這邊記錄下在springboot中如何整合swagger2。其實使用基本相同。 首先還是引用相關jar包。我使用
spring cloud-整合Swagger2構建RESTful服務的APIs
前言 在前面的部落格中,我們將服務註冊到了Eureka上,可以從Eureka的UI介面中,看到有哪些服務已經註冊到了Eureka Server上,但是,如果我們想檢視當前服務提供了哪些RESTful介面方法的話,就無從獲取了,傳統的方法是梳理一篇服務的介面文件來供開發人員之
【實踐筆記】Spring MVC中Restful API使用 Swagger2 構建
1、Swagger2是什麼? Swagger 是一款RESTFUL介面的文件線上自動生成+功能測試功能軟體。 Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法,引數和模型緊密
Spring Boot中使用Swagger2構建RESTful APIs
end err sdk yaml ack tex 社區 控制器 prope 關於 Swagger Swagger能成為最受歡迎的REST APIs文檔生成工具之一,有以下幾個原因: Swagger 可以生成一個具有互動性的API控制臺,開發者可以用來快速學習和嘗試A
Spring Boot構建RESTful API與單元測試實戰
一 點睛 1 相關注解 @Controller:修飾class,用來建立處理http請求的物件 @RestController:Spring4之後加入的註解,原來在@Controller中返回json需要@ResponseBody來配合,如果直接用@
Spring Boot 入門篇 (二) Spring Boot構建RESTful API與單元測試
http://blog.didispace.com/springbootrestfulapi/ 首先,回顧並詳細說明一下在快速入門中使用的@Controller、@RestController、@RequestMapping註解。如果您對Spring MVC不熟悉並且還沒有嘗試過快速入門案例,建