<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Knife4j是一款基於Swagger 2的線上API檔案框架。
使用Knife4j的基礎步驟:
application.properties
/application.yml
中新增設定關於依賴項:
<!-- Knife4j Spring Boot:線上API --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>
注意:以上依賴項的版本是2.0.9
,適用於Spring Boot 2.6以下(不含2.6)版本。
關於組態檔中的設定,主要是開啟此框架的增強模式(Knife4j定義的概念),需要新增:
knife4j.enable=true
關於設定類:
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; /** * Knife4j設定類 * * @author java@tedu.cn * @version 0.0.1 */ @Slf4j @Configuration @EnableSwagger2WebMvc public class Knife4jConfiguration { /** * 【重要】指定Controller包路徑 */ private String basePackage = "cn.tedu.csmall.product.controller"; /** * 分組名稱 */ private String groupName = "product"; /** * 主機名 */ private String host = "http://java.tedu.cn"; /** * 標題 */ private String title = "商城線上API檔案--商品管理"; /** * 簡介 */ private String description = "商城線上API檔案--商品管理"; /** * 服務條款URL */ private String termsOfServiceUrl = "http://www.apache.org/licenses/LICENSE-2.0"; /** * 聯絡人 */ private String contactName = "Java教學研發部"; /** * 聯絡網址 */ private String contactUrl = "http://java.tedu.cn"; /** * 聯絡郵箱 */ private String contactEmail = "java@tedu.cn"; /** * 版本號 */ private String version = "1.0.0"; @Autowired private OpenApiExtensionResolver openApiExtensionResolver; public Knife4jConfiguration() { log.debug("建立設定類物件:Knife4jConfiguration"); } @Bean public Docket docket() { String groupName = "1.0.0"; Docket docket = new Docket(DocumentationType.SWAGGER_2) .host(host) .apiInfo(apiInfo()) .groupName(groupName) .select() .apis(RequestHandlerSelectors.basePackage(basePackage)) .paths(PathSelectors.any()) .build() .extensions(openApiExtensionResolver.buildExtensions(groupName)); return docket; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title(title) .description(description) .termsOfServiceUrl(termsOfServiceUrl) .contact(new Contact(contactName, contactUrl, contactEmail)) .version(version) .build(); } }
注意:務必檢查以上設定類中的basePackage
屬性的值,必須是當前專案中控制器類所在的包!
在專案中已經完成以上步驟後,啟動專案,開啟瀏覽器,通過http://localhost:8080/doc.html即可存取線上API檔案。
@Api
:新增在控制器類上
tags
屬性,可設定模組名稱,可以在模組名稱中使用編號,例如:01. 品牌管理模組,最終將按照編號升序排列@ApiOperation
:新增在控制器類中處理請求的方法上
value
屬性,可設定業務名稱@ApiOperationSupport
:新增在控制器類中處理請求的方法上
order
屬性(int
型別),可設定業務的排序序號,最終將升序排列@ApiModelProperty
:新增在POJO型別的屬性上
value
屬性,可設定引數名稱(說明)required
屬性,可設定是否必須提交此引數example
屬性,可設定此請求引數的範例值@ApiImplicitParam
:新增在控制器類中處理請求的方法上,用於對未封裝的請求引數新增說明(例如Long id
引數)
name
屬性,取值為方法的引數名稱,表示當前註解對哪個引數進行說明value
屬性,可設定引數名稱(說明)required
屬性,可設定是否必須提交此引數dataType
屬性,可設定引數的資料型別(例如取值為"long"
)example
屬性,可設定此請求引數的範例值@ApiImplicitParams
:新增在控制器類中處理請求的方法上,此註解的value
屬性是@ApiImplicitParam
註解的陣列型別,當需要使用@ApiImplicitParam
對多個未封裝引數進行說明時,需要將多個@ApiImplicitParam
註解的設定作為當前註解的引數
@ApiOperation("刪除類別") @ApiOperationSupport(order = 200) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "類別ID", required = true, dataType = "long"), @ApiImplicitParam(name = "userId", value = "使用者ID", required = true, dataType = "long") }) @PostMapping("/delete") public void delete(Long userId, Long id) {}
到此這篇關於SpringBoot Knife4j線上API檔案框架基本使用的文章就介紹到這了,更多相關SpringBoot Knife4j 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45