iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
生成式 AI

API: Swagger, Postman系列 第 18

如何在 Swagger 中處理不同的 API 請求方法(GET、POST 等)。

  • 分享至 

  • xImage
  •  

在 Swagger 中處理不同的 API 請求方法(如 GETPOSTPUTDELETE 等)時,可以為每個 API 路徑指定多種請求方法,並且每個方法可以有不同的請求參數、請求體和響應格式。下面是如何在 Swagger(或 OpenAPI 規範)中處理這些請求的基本步驟:

1. 定義路徑(Paths)

每個 API 請求方法與某個特定的路徑相關聯。在 Swagger 中,paths 部分用於定義這些路徑。例如,我們可以為 /users 路徑定義不同的請求方法。

2. 為路徑定義 HTTP 方法

在某個路徑下可以定義不同的 HTTP 方法(如 GETPOST 等),並分別描述每個方法的細節,如參數、請求體、響應等。

示例:

以下是 Swagger YAML 文件的一個示例,它展示了如何為 /users 路徑定義不同的請求方法:

openapi: 3.0.0
info:
  title: 用戶 API
  description: 處理用戶相關操作的 API
  version: 1.0.0
paths:
  /users:
    get:
      summary: 取得用戶列表
      description: 獲取所有用戶的列表
      responses:
        '200':
          description: 成功取得用戶列表
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: 用戶ID
                    name:
                      type: string
                      description: 用戶名稱
    post:
      summary: 新增用戶
      description: 新增一個新的用戶
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 用戶名稱
                email:
                  type: string
                  description: 用戶的電子郵件
      responses:
        '201':
          description: 用戶成功建立
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: 新建立的用戶ID
                  name:
                    type: string
                    description: 用戶名稱
                  email:
                    type: string
                    description: 用戶的電子郵件

  /users/{id}:
    get:
      summary: 取得特定用戶的資訊
      description: 根據用戶ID來取得特定用戶的詳細資訊
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: 用戶ID
      responses:
        '200':
          description: 成功取得用戶資料
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: 用戶ID
                  name:
                    type: string
                    description: 用戶名稱
                  email:
                    type: string
                    description: 用戶的電子郵件
        '404':
          description: 用戶未找到

說明:

  1. /users 路徑:

    • GET 方法:用來取得所有用戶的列表,成功的回應是包含用戶資訊的 JSON 陣列。
    • POST 方法:用來新增一個新用戶,請求體是包含用戶名稱和電子郵件的 JSON 對象,成功的回應是新建用戶的詳細資訊。
  2. /users/{id} 路徑:

    • GET 方法:根據路徑參數 {id} 取得特定用戶的資訊,若成功會返回用戶的詳細資料,若用戶未找到則返回 404。

小結:

  • 每個 API 路徑可以定義多個 HTTP 方法。
  • 每個方法可以有不同的參數、請求體及回應結構。
  • 使用 responses 定義不同的回應狀態碼及其對應的回應內容。

上一篇
Swagger 中的基本操作:添加路由和參數。
下一篇
在 Swagger 中測試 API:運行和調試。
系列文
API: Swagger, Postman30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言