日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

bilibili在线解析接口_SpringBoot+Gradle+MyBatisPlus3.x + Swagger搭建在线和离线API

發(fā)布時間:2023/12/15 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bilibili在线解析接口_SpringBoot+Gradle+MyBatisPlus3.x + Swagger搭建在线和离线API 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、簡要說明

  • 本文章是搭建SpringBoot + Gradle + MyBatisPlus3.x + SwaggerBootstrapUi整合在線和離線API
  • 本框架以Java語言實現(xiàn)為主,基于SpringBoot+Gradle+ MyBatisPlus3.x搭建企業(yè)級的后臺分離框架 進行迭代框架實現(xiàn)

2、核心功能

在線文檔:http://doc.xiaominfo.com/該UI增強包主要包括兩大核心功能:文檔說明在線調(diào)試

  • 文檔說明:根據(jù)Swagger的規(guī)范說明,詳細(xì)列出接口文檔的說明,包括接口地址、類型、請求示例、請求參數(shù)、響應(yīng)示例、響應(yīng)參數(shù)、響應(yīng)碼等信息,使用swagger-bootstrap-ui能根據(jù)該文檔說明,對該接口的使用情況一目了然。
  • 在線調(diào)試:提供在線接口聯(lián)調(diào)的強大功能,自動解析當(dāng)前接口參數(shù),同時包含表單驗證,調(diào)用參數(shù)可返回接口響應(yīng)內(nèi)容、headers、Curl請求命令實例、響應(yīng)時間、響應(yīng)狀態(tài)碼等信息,幫助開發(fā)者在線調(diào)試,而不必通過其他測試工具測試接口是否正確,簡介、強大。

3、UI增強

同時,swagger-bootstrap-ui在滿足以上功能的同時,還提供了文檔的增強功能,這些功能是官方swagger-ui所沒有的,每一個增強的功能都是貼合實際,考慮到開發(fā)者的實際開發(fā)需要,是比不可少的功能,主要包括:

  • 個性化配置:通過個性化ui配置項,可自定義UI的相關(guān)顯示信息
  • 離線文檔:根據(jù)標(biāo)準(zhǔn)規(guī)范,生成的在線markdown離線文檔,開發(fā)者可以進行拷貝生成markdown接口文檔,通過其他第三方markdown轉(zhuǎn)換工具轉(zhuǎn)換成html或pdf,這樣也可以放棄swagger2markdown組件
  • 接口排序:自1.8.5后,ui支持了接口排序功能,例如一個注冊功能主要包含了多個步驟,可以根據(jù)swagger-bootstrap-ui提供的接口排序規(guī)則實現(xiàn)接口的排序,step化接口操作,方便其他開發(fā)者進行接口對接

4、UI特點

  • 以markdown形式展示文檔,將文檔的請求地址、類型、請求參數(shù)、示例、響應(yīng)參數(shù)分層次依次展示,接口文檔一目了然,方便開發(fā)者對接
  • 在線調(diào)試欄除了自動解析參數(shù)外,針對必填項著顏色區(qū)分,同時支持tab鍵快速輸入上下切換.調(diào)試時可自定義Content-Type請求頭類型
  • 個性化配置項,支持接口地址、接口description屬性、UI增強等個性化配置功能
  • 接口排序,支持分組及接口的排序功能
  • 支持markdown文檔離線文檔導(dǎo)出,也可在線查看離線文檔
  • 調(diào)試信息全局緩存,頁面刷新后依然存在,方便開發(fā)者調(diào)試
  • 以更人性化的treetable組件展示Swagger Models功能
  • 響應(yīng)內(nèi)容可全屏查看,針對響應(yīng)內(nèi)容很多的情況下,全屏查看,方便調(diào)試、復(fù)制
  • 文檔以多tab方式可顯示多個接口文檔
  • 請求參數(shù)欄請求類型、是否必填著顏色區(qū)分
  • 主頁中粗略統(tǒng)計接口不同類型數(shù)量
  • 支持接口在線搜索功能
  • 左右菜單和內(nèi)容頁可自由拖動寬度
  • 支持自定義全局參數(shù)功能,主頁包括header及query兩種類型
  • i18n國際化支持,目前支持:中文簡體、中文繁體、英文
  • JSR-303 annotations 注解的支持

5、 Maven與Gradle配置中引入Jar包

  • 由于是springfox-swagger的增強UI包,所以基礎(chǔ)功能依然依賴Swagger,springfox-swagger的jar包必須引入
  • maven 配置
io.springfox springfox-swagger2 2.9.2
  • Gradle配置
compile "io.springfox:springfox-swagger2:${swagger2_version}"
  • 然后引入SwaggerBootstrapUi的jar包
  • maven 配置
com.github.xiaoymin swagger-bootstrap-ui ${lastVersion}
  • Gradle配置
compile "com.github.xiaoymin:swagger-bootstrap-ui:${swagger_bsi_version}"

6、代碼實現(xiàn)

  • EnableSwagger2 啟動Swagger配置
  • EnableSwaggerBootstrapUI 啟動Swagger的UI配置
@Configuration@EnableSwagger2@EnableSwaggerBootstrapUIpublic class SwaggerConfiguration { private final String BASE_PACKAGE = "com.flong.springboot"; @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //此組名可以通過數(shù)據(jù)庫查出來加載里面,通過模塊路徑進行掃描不同微服務(wù)名的包路徑。 .groupName("用戶管理") .select() .apis(RequestHandlerSelectors.basePackage(BASE_PACKAGE)) .paths(PathSelectors.any()) .build(); } /** * api信息 * @return */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger RESTful APIs") .description("Swagger RESTful APIs") .termsOfServiceUrl("http://github.com/jilongliang/") .contact("liangjl") .version("1.0") .build(); }}
  • 實體類
@ApiModel("用戶實體")public class User extends Model implements Serializable { @TableId(type = IdType.ID_WORKER) @ApiModelProperty(value = "用戶Id") private Long userId; /** * 用戶名 */ @ApiModelProperty(value = "用戶名") private String userName; /** * 密碼 */ @ApiModelProperty(value = "密碼") private String passWord; /** * 邏輯刪除(0-未刪除,1-已刪除) */ @TableLogic @ApiModelProperty(value = "邏輯刪除(0-未刪除,1-已刪除)") private String delFlag; /** * 創(chuàng)建時間,允許為空,讓數(shù)據(jù)庫自動生成即可 */ @ApiModelProperty(value = "創(chuàng)建時間") private Date createTime;}
  • Controller類
@Api(tags = "用戶管理")@RestController@RequestMapping("/user")public class UserController { @Autowired private UserMapper userMapper; @Autowired private UserService userService; /** * 添加 */ @PutMapping("/add") @ApiOperation(value = "添加用戶",notes = "添加用戶") public void add() { userMapper.insert(User.builder().userName("周伯通").passWord("123456").build()); } /** * 修改 * @param user */ @PutMapping("/updateById") @ApiOperation(value = "修改用戶",notes = "通過用戶Id進行修改用戶信息") public void updateById(@RequestBody User user) { userMapper.updateById(user); } /** * 刪除通過多個主鍵Id進行刪除 * @param ids */ @DeleteMapping("/deleteByIds") @ApiOperation(value = "修改刪除",notes = "支持多個用戶Id進行刪除用戶") public void deleteByIds(@RequestBody List ids) { userMapper.deleteBatchIds(ids); } /** * 通過指定Id進行查詢 * * @param userId */ @GetMapping("/getOne/{userId}") @ApiOperation(value = "查詢一個用戶信息",notes = "通過指定Id進行查詢") public User getOne(@PathVariable("userId") Long userId) { User user = userMapper.selectById(userId); System.out.println(JSON.toJSON(user)); return user ; } /** * 用戶分頁,參數(shù)有多個使用下標(biāo)索引進行處理.如果有兩個參數(shù)(如用戶名和地址):conditionList[0].fieldName=userName、 conditionList[0].fieldName=address * 未轉(zhuǎn)碼請求分頁地址: http://localhost:7011/user/page?current=1&size=20&conditionList[0].fieldName=userName&conditionList[0].operation=LIKE&conditionList[0].value=周 * 已轉(zhuǎn)碼請求分頁地址: http://localhost:7011/user/page?current=1&size=20&conditionList[0].fieldName=userName&conditionList[0].operation=LIKE&conditionList[0].value=%E5%91%A8 * @param page * @param conditions 條件 * @return */ @GetMapping("/page") @ApiOperation(value = "用戶分頁查詢",notes = "通過多個條件進行查詢用戶信息") public IPage page(Page page, Conditions conditions) { QueryWrapper build = BuildConditionWrapper.build(conditions.getConditionList(), User.class); build.lambda().orderByDesc(User::getCreateTime); return userService.page(page, build); }}

7、訪問路徑

  • http://{port}/doc.html
http://localhost:7011/doc.html

8、代碼工程結(jié)構(gòu)與運行結(jié)構(gòu)

工程代碼

離線文檔

用戶代碼實現(xiàn)APi

用戶代碼實現(xiàn)APi

9、工程源代碼

  • 工程代碼在 swagger 分支 https://github.com/jilongliang/springboot/tree/swagger 同時把代碼合并到分支.

總結(jié)

以上是生活随笔為你收集整理的bilibili在线解析接口_SpringBoot+Gradle+MyBatisPlus3.x + Swagger搭建在线和离线API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。