您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在SpringBoot中利用Swagger2生成一個接口文檔,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
準備工作
一個SpringBoot項目,可以直接去官網 生成一個demo 。
一個用戶類。
package cn.itweknow.springbootswagger.model; import java.io.Serializable; public class User implements Serializable { private Integer id; private String name; private String password; private String email; }
項目依賴
Web Service肯定是一個Web項目,所以我們這里依賴了 spring-boot-starter-web
包,其他兩個包就是和 Swagger
相關的包了。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
Swagger配置
Springfox Docket實例為Swagger配置提供了便捷的配置方法以及合理的默認配置。我們將通過創建一個Docket實例來對Swagger進行配置,具體配置如下所示。
@Configuration @EnableSwagger2 public class SwaggerConfig extends WebMvcConfigurationSupport { @Bean public Docket productApi() { return new Docket(DocumentationType.SWAGGER_2).select() // 掃描的包路徑 .apis(RequestHandlerSelectors.basePackage("cn.itweknow.springbootswagger.controller")) // 定義要生成文檔的Api的url路徑規則 .paths(PathSelectors.any()) .build() // 設置swagger-ui.html頁面上的一些元素信息。 .apiInfo(metaData()); } private ApiInfo metaData() { return new ApiInfoBuilder() // 標題 .title("SpringBoot集成Swagger2") // 描述 .description("這是一篇博客演示") // 文檔版本 .version("1.0.0") .license("Apache License Version 2.0") .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0") .build(); } @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
上述代碼中的addResourceHandlers方法添加了兩個資源處理程序,這段代碼的主要作用是對Swagger UI的支持。
API文檔
好了,到這一步,我們已經在一個SpringBoot項目中配置好了Swagger。現在,我們就來看一下如何去使用他。首先我們定義了一個 Controller
并提供了兩個接口:
通過用戶id獲取用戶
用戶登錄
@RestController @RequestMapping("/user") @Api(description = "用戶相關接口") public class UserController { /** * 通過id查詢用戶 * @return */ @RequestMapping(value = "/get", method = RequestMethod.GET) @ApiOperation("根據id獲取用戶") public User getUserById(@ApiParam(value = "用戶id") Integer id) { return new User(); } @RequestMapping(value = "/login", method = RequestMethod.POST) @ApiOperation("用戶登錄") public User login(@RequestBody User user) { return new User(); } }
相信大家都注意到了,這個 Controller
里面多了很多新的注解,比如說 @Api
, @ApiOperation
等,下面我們就來一一解釋一下。
@Api,這個注解是用在Controller類上面的,可以對Controller做必要的說明。
@ApiOperation,作用在具體的方法上,其實就是對一個具體的API的描述。
@ApiParam,對API參數的描述。
到這里,其實我們的Swagger就已經可以有效果了,讓我們將項目運行起來先看看效果。訪問 http://localhost:8080/swagger-ui.html 即可。
Model
在上面的圖中可以看到在頁面的下方有一個Models的標簽,那么這個是啥呢。其實這個就是我們API中出現的一些對象的文檔,我們也可以通過注解來對這些對象中的字段做一些說明,以方便使用者理解。以文章開頭提到的 User
類來做一個說明。
@ApiModel("用戶實體") public class User implements Serializable { @ApiModelProperty(value = "用戶id") private Integer id; @ApiModelProperty(value = "用戶名稱", required = true) private String name; @ApiModelProperty(value = "密碼", required = true) private String password; @ApiModelProperty(value = "用戶郵箱") private String email; }
我們來看一下 User
類在Swagger上是如何展示的:
上述內容就是怎么在SpringBoot中利用Swagger2生成一個接口文檔,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。