1. 概述
本教程將簡要介紹 Swagger 的 `<em @Parameter 和 <em @Schema 註解。 此外,我們還將比較這些註解並確定每種註解的正確用法。
2. 關鍵差異
簡單來説,@Parameter 和 @Schema 註解為 Swagger 添加了不同的元數據。@Parameter 註解用於 API 資源請求的參數,而@Schema 則用於模型的屬性。
3. <em @Parameter>
The > 標註用於定義操作或路徑參數部分中的參數。 該 > 標註有助於指定參數的名稱、描述和示例值。 此外,我們還可以指定參數是否為必需或可選。
下面我們來看一下它的使用方法:
@RequestMapping(
method = RequestMethod.POST,
value = "/createUser",
produces = "application/json; charset=UTF-8")
@ResponseStatus(HttpStatus.CREATED)
@ResponseBody
@Operation(summary = "Create user",
description = "This method creates a new user")
public User createUser(@Parameter(
name = "firstName",
description = "First Name of the user",
example = "Vatsal",
required = true)
@RequestParam String firstName) {
User user = new User(firstName);
return user;
}讓我們來看一下 Swagger UI 對我們 @Parameter 示例的表示:
現在,讓我們來看一下 @Schema。
4. <em @Schema>
@Schema 標註 允許我們控制 Swagger 相關的定義,例如描述、名稱、類型、示例值和模型屬性的允許值。
此外,它還提供額外的過濾屬性,以便在某些場景下隱藏屬性。
讓我們為 > 用户的 firstName 字段添加一些模型屬性:
@Schema(
description = "first name of the user",
name = "firstName",
type = "string",
example = "Vatsal")
String firstName;現在,讓我們來查看 Swagger UI 中 User 模型的規格説明:
5. 結論
在本文中,我們探討了兩種 Swagger 註解,用於為參數和模型屬性添加元數據。我們還查看了使用這些註解的示例代碼,並觀察了它們在 Swagger UI 中的表示。