《SpringBoot2.X極簡教程》集成可視化Api工具Swagger2

開門見山:本教程同步更新於同名公共號 "程序員八阿哥" 喜歡的朋友可以搜索並關注

獲取源碼:本教程源碼獲取方式,私信回覆關鍵字: SBJC


《SpringBoot2.X極簡教程》集成可視化Api工具Swagger2

Swagger介紹

Swagger是一款非常完整和規範的API可視化框架,用戶生成,描述和調用的可視化RESTFUL風格的WEB接口服務。可以更加RESTFUL風格生成接口開發文檔,並支持測試的一款中間件。

Swagger的優勢

後端開發

  • 不用手寫大量的Wiki或者接口文檔,避免手寫錯誤
  • 採用全註解,對代碼侵入性比較低
  • 方法參數做了調整可以是直接生效,無需額外維護
  • 缺點:增加了開發成本,需要在開發過程中寫一套配置

前端開發

  • 會自動生成文檔,接口功能和參數一目瞭然
  • 聯調非常方便,可以直接對接口進行測試,實時檢查參數和返回信息,可以快速定位問題

測試

  • 對於需要測試介入的接口測試功能,可以直接開測,非常方便
  • 操作簡單


《SpringBoot2.X極簡教程》集成可視化Api工具Swagger2

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展示

《SpringBoot2.X極簡教程》集成可視化Api工具Swagger2

寫在最後:本系列教程,旨在打造全網最全、比收費教程更好的SpringBoot免費教程!

如何支持:關注本人同名公眾號 “程序員八阿哥” ,精品系列文章會及時推送到給您。


《SpringBoot2.X極簡教程》集成可視化Api工具Swagger2



分享到:


相關文章: