模擬行為
此區段說明模擬如何處理 API Designer 中可用的各種 API 定義元素。
模擬主要針對對應於 API 契約的要求提供靜態解答。它們在回應要求時,不會考慮在 API、要求承載或要求標頭上定義的任何安全性 (用於內容協商的 Accept 標頭除外)。
提出要求時,模擬會根據使用者提供的內容 (範例、預設值、列舉值) 或使用內建的範例值來建立回應。
例如,如果要求傳回一個物件,若有提供該物件的範例,則會使用該範例。如果沒有,則會使用每個屬性上的範例,並從中建立一個 JSON 物件。這也適用於回應標頭。
回應
- 如果您的作業只有一個回應範圍,則會傳回該範圍內的第一個狀態。例如,具有 2XX 回應範圍的作業會傳回 200 回應。
- 如果您的作業具有特定的回應代碼和回應範圍或預設回應,則會傳回定義的代碼。例如,具有 201 回應和 3XX 回應範圍的作業會傳回 201 回應。
- 如果您的作業有數個回應範圍且未定義回應狀態,則會傳回第一個範圍的第一個狀態。例如,具有 4XX 和 5XX 回應範圍的作業會傳回 400 回應。
- 如果您的作業只有預設回應,則傳回的回應取決於作業方法:
- 如果使用的方法是 POST,則會傳回 201 回應。
- 對於其他方法,如果未定義回應主體,則會傳回 204 回應;如果已定義回應主體,則會傳回 200 回應。
- 如果您的作業沒有定義的回應,則會傳回 200 回應。
- 模擬不支援 1XX 回應。如果作業具有 1XX 回應範圍或在此範圍內定義的回應代碼,則會傳回 404 回應。
組合
- 全部:如果已定義範例,則會將其傳回。如果未針對資料類型定義範例,則會合併類型的屬性,並使用在屬性層級定義的範例或產生範例值。如果在不同類型中定義了兩次屬性,則只會保留最後一個值。會捨棄基本類型,只傳回物件。
- 任何 或 其中之一:如果已定義範例,則會將其傳回。如果未定義範例,則會從清單中的第一個類型產生回應。
限制
- 僅在要求中可用:該屬性從產生的範例中已排除。
- 僅在回應中可用:該屬性會包含在產生的範例中。
- 在要求和回應中可用:該屬性會包含在產生的範例中。
在資料類型層級提供的範例優先於屬性。如果定義為 僅在要求中可用 的屬性包含在範例中,則會在回應中傳回。如果定義為 僅在回應中可用 或 在要求和回應中可用 的屬性未包含在範例中,則不會在回應中傳回。