SpringBoot整合Swagger(七)@ApiModel()註解一通百通 | Java隨筆記
theme: scrolls-light
「這是我參與11月更文挑戰的第23天,活動詳情檢視:2021最後一次更文挑戰」
相關文章
Java隨筆記:Java隨筆記
前言
- 俗話說,磨刀不誤砍柴工,前面的內容主要是對Swagger進行配置。
- 今天要講解的內容才是Swagger實際使用的實體配置,還有介面的配置。
- 畢竟我們一直強調的是
前後端聯調
,那麼怎麼樣讓前端一眼就看得懂我們的介面呢?
一、實體配置
1.1、實體配置案例
-
首先建立學生實體類
StudentResponse
@Data @ApiModel(value = "學生類") public class StudentResponse { @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "年齡") private int age; @ApiModelProperty(value = "愛好") private String like; }
-
Controller
修改返回值為StudentResponse
@RestController public class SwaggerTestController { @RequestMapping(value = "test-swagger",method = RequestMethod.GET) public StudentResponse dyTest(){ return new StudentResponse(); } }
-
重啟測試點選
model
檢視 -
這樣的話,前端對我們的返回值每個的說明都清清朗朗的!
-
麻麻再也不用擔心前端看不懂返回引數啦~
1.2、@ApiModel()註解
-
既然知道有這麼個註解可以對我們的返回值提供說明文件,那麼這個註解究竟是什麼?可以設定哪些引數呢?別急,下面我們慢慢道來。
-
老規矩,點進去看看,這個註解有哪些引數?分別設定下看看有什麼效果
-
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface ApiModel { String value() default ""; String description() default ""; Class<?> parent() default Void.class; String discriminator() default ""; Class<?>[] subTypes() default {}; String reference() default ""; }
-
解釋說明:
@Target({ElementType.TYPE})
:該註解標註在類上@Retention(RetentionPolicy.RUNTIME)
:執行時生效@Inherited
:當@Inherited註解加在某個類A上時,假如類B繼承了A,則B也會帶上該註解。- 關於註解的詳細玩法,有興趣的童鞋可以看看我先前寫的文章,十分詳細:玩轉Java註解---元註解、內建註解、自定義註解的原理和實現 | Java註解和反射系列(一)
-
-
多引數設定:
- 新建課程類
CourseResponse
@ApiModel(value = "課程類") @Data public class CourseResponse { @ApiModelProperty(value = "課程") private String course; }
@Data @ApiModel(value = "學生類",description = "這是類的詳細描述資訊呀",parent = CourseResponse.class,subTypes = CourseResponse.class) public class StudentResponse{ @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "年齡") private int age; @ApiModelProperty(value = "愛好") private String like; @ApiModelProperty() private CourseResponse perResponse; }
- 新建課程類
-
再次重啟看看效果:
-
總結如下:
- value屬性:這個屬性,提供的是類的一個備用名。如果我們不設定,那麼預設情況下,將使用的是
class
類的名字。 - description屬性:對於類,提供一個詳細的描述資訊
- parent屬性:這個屬性,描述的是類的一些父類的資訊。
- discriminator屬性:這個屬性解釋起來有些麻煩,因為這個類主要是體現出了斷言當中。
- subTypes屬性:舉個例項,如果我們此時有一個父類
Animal
。同時,對於這個父類,我們的系統中有這個類的子類Cat
、Dog
、Pig
等。如果我們在我們的父類上,通過這個屬性,指定了我們想要使用的子類的話,那麼在生成Swagger
的文件的話,會自動的展示的是Animal
這個屬性,但是在屬性的欄位中,會顯示出子類的一些獨有的屬性,其實在這裡,是不推薦使用的。因為這樣會讓別人認為,這些子類獨有的屬性,也是父類才有的。
- value屬性:這個屬性,提供的是類的一個備用名。如果我們不設定,那麼預設情況下,將使用的是
- 關於
discriminator
這個屬性,容我後面單獨出個斷言
文章再來填坑。。因為我現在也不大會。。 - 十一點了哇靠!明日再戰!
- 明日預告:
@ApiModelProperty()
詳解。
路漫漫其修遠兮,吾必將上下求索~
如果你認為i博主寫的不錯!寫作不易,請點贊、關注、評論給博主一個鼓勵吧~hahah
「其他文章」
- SpringBoot整合Swagger(十一)常用註解介紹 | Java隨筆記
- SpringBoot整合Swagger(十)常用註解介紹 | Java隨筆記
- 將數字變成 0 的操作次數 | LeetCode刷題筆記
- SpringBoot整合Swagger(九)給你的Swagger換個面板吧 | Java隨筆記
- SpringBoot整合Swagger(八)@ApiModelProperty()註解一擼到底 | Java隨筆記
- SpringBoot整合Swagger(七)@ApiModel()註解一通百通 | Java隨筆記
- SpringBoot整合Swagger(六)玩轉groupName()分組 | Java隨筆記
- SpringBoot整合Swagger(五)動態配製Swagger的開關 | Java隨筆記
- SpringBoot整合Swagger(三)paths()介面過濾 | Java隨筆記
- 隨機數實現撲克牌洗牌 | Java隨筆記
- 線上出問題?遠端DeBug會嗎?| Java隨筆記
- Widows和Linux下如何安裝MySQL | MySQL(前傳)
- Ubuntu新增root使用者和開啟遠端登陸 | Java隨筆記
- Ubuntu16.04上安裝jdk1.8 | Java隨筆記
- Java函式和陣列 | Java隨筆記
- 程式設計師最喜歡的一句話?當然是New物件啦~ | Java隨筆記
- MyBatis中使用foreach批量插入並且返回自增id | MyBatis系列(小技巧一)
- 操作資料庫和資料表 | MySQL(一)基礎
- @Value註解讀取配置檔案中的內容 | Java隨筆記
- SpringBoot整合Swagger(三)apis()介面掃描 | Java隨筆記