簡體   English   中英

在 OpenAPI 3.0 中,如何創建從實體列表到單個實體的鏈接?

[英]In OpenAPI 3.0, how do I create a link from a list of entities to a single entity?

在大多數 OpenAPI 3.0 文檔(如官方文檔)中,引入了鏈接和 POST 端點的組合,以創建一個返回 ID 的實體,該 ID 鏈接到 GET 端點以通過相同的返回 ID 獲取該實體:

  1. POST /users -> UserID
  2. GET /users/{UserID} -> User

在 Schemathesis 上下文中,這將假設一個空數據存儲並模擬一個創建+獲取場景。 我想在預熱數據存儲上測試我的GET端點並實現“獲取列表,然后按 ID 從列表中獲取每個實體”的場景:

  1. GET /users -> List[User] -> List[UserID]
  2. GET /users/{UserID} -> User

為此,我需要一個從列表GET端點到實體GET端點的 OpenAPI 鏈接,但是我似乎找不到示例或確認這確實可行。

我可以嗎?如果可以,我該如何在 OpenAPI 3.0 中創建這樣的鏈接?

OpenAPI 鏈接是使用JSON 指針定義的。 JSON 指針非常有限 - 它們只能指向 JSON 結構中的特定字段(例如“此數組的第一個元素”或整個數組)並且不支持通配符表達式(例如“任何/每個元素這個數組”)。

這意味着,例如,如果您有返回的GET /users端點

[
  {
    "id": "29d590d1-02b2-4aa1-9ce5-98202cc9a619",
    "username": "nikolai",
    ...
  },
  {
    "id": "58091b14-eb06-47ee-b896-50cebdda20ef",
    "username": "helen",
    ...
  },
  ...
]

您可以定義一個鏈接,如$response.body#/0/id以指示列表中第一個用戶id可以用作另一個端點的參數。 但是沒有辦法讓鏈接引用列表中的任意/每個用戶


您可以在 OpenAPI 規范存儲庫中查看這些討論以獲取更多詳細信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM