知識庫 / REST RSS 訂閱

Swagger @Parameter 與 @Schema 詳解

REST
HongKong
9
03:36 AM · Dec 06 ,2025

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 中的表示。

發佈 評論

Some HTML is okay.