開門見山:本教程同步更新於同名公共號 "程序員八阿哥" 喜歡的朋友可以搜索並關注
獲取源碼:本教程源碼獲取方式,私信回覆關鍵字: SBJC
Swagger介紹
Swagger是一款非常完整和規範的API可視化框架,用戶生成,描述和調用的可視化RESTFUL風格的WEB接口服務。可以更加RESTFUL風格生成接口開發文檔,並支持測試的一款中間件。
Swagger的優勢
後端開發
- 不用手寫大量的Wiki或者接口文檔,避免手寫錯誤
- 採用全註解,對代碼侵入性比較低
- 方法參數做了調整可以是直接生效,無需額外維護
- 缺點:增加了開發成本,需要在開發過程中寫一套配置
前端開發
- 會自動生成文檔,接口功能和參數一目瞭然
- 聯調非常方便,可以直接對接口進行測試,實時檢查參數和返回信息,可以快速定位問題
測試
- 對於需要測試介入的接口測試功能,可以直接開測,非常方便
- 操作簡單
Springboot集成swagger2
Maven配置
<dependency>
<groupid>com.spring4all/<groupid>
<artifactid>swagger-spring-boot-starter/<artifactid>
<version>1.9.1.RELEASE/<version>
YML配置
server:
port: 8081
servlet:
context-path: / #springboot2.0之前配置:server.context-path
swagger:
base-package: com.bug.mq
base-path: /**
description: 用戶管理
title: 可視化接口管理
version: 1.9.1.RELEASE
實體類
package com.bug.mq.chapter12;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
@ApiModel("用戶")
@Data
@Builder
public class User {
@ApiModelProperty(value = "用戶編碼", example = "1")
private Long userId;
@ApiModelProperty(value = "用戶名稱", example = "Hello")
private String name;
}
接口開發
package com.bug.mq.chapter12;
import com.google.common.collect.Lists;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "用戶管理")
@RestController
@Slf4j
@RequestMapping("users")
public class UserController {
static Map<long> users = Collections.synchronizedMap(new HashMap<>());/<long>
@GetMapping
@ApiOperation(value = "用戶列表")
public List<user> list(){/<user>
List<user> list = Lists.newArrayList();/<user>
return list;
}
@PostMapping
@ApiOperation(value = "創建用戶",notes = "根據User對象創建用戶")
public String insertUser(@RequestBody User user){
users.put(user.getUserId(),user);
return "ok";
}
@ApiOperation(value = "獲取用戶詳情",notes = "根據用戶ID")
@GetMapping("/{userId}")
public User detail(@PathVariable Long userId){
return users.getOrDefault(userId,User.builder().build());
}
@ApiImplicitParam(paramType = "path",dataType = "Long",name = "userId",value = "用戶編碼",required = true,example = "1")
@ApiOperation(value = "修改用戶",notes = "根據userId指定更新對象,並通過傳入User對象進行更新")
@PutMapping("/{userId}")
public String updateUser(@PathVariable Long userId,@RequestBody User user){
User updateUser = users.getOrDefault(userId,User.builder().build());
updateUser.setName(updateUser.getName());
updateUser.setUserId(updateUser.getUserId());
users.put(userId,updateUser);
return "ok";
}
}
Swagger展示
寫在最後:本系列教程,旨在打造全網最全、比收費教程更好的SpringBoot免費教程!
如何支持:關注本人同名公眾號 “程序員八阿哥” ,精品系列文章會及時推送到給您。
閱讀更多 程序員八阿哥 的文章