模拟行为
本部分描述了模拟如何处理 API Designer 中可用的各种 API 定义元素。
模拟主要为符合 API 契约的请求提供静态响应。它们在响应请求时,不会考虑 API 上定义的任何安全性、请求有效负载或请求标头(用于内容协商的 Accept 标头除外)。
发出请求时,模拟会根据用户提供的内容(示例、默认值、枚举值)或使用内置示例值创建响应。
例如,如果请求返回一个对象,则在提供了该对象示例的情况下会使用该示例。如果没有提供,则使用每个属性上的示例,并据此创建一个 JSON 对象。这也适用于响应标头。
响应
- 如果您的操作仅具有响应范围,则返回该范围内的第一个状态。例如,具有 2XX 响应范围的操作将返回 200 响应。
- 如果您的操作具有特定的响应代码和响应范围或默认响应,则返回定义的代码。例如,具有 201 响应和 3XX 响应范围的操作将返回 201 响应。
- 如果您的操作具有多个响应范围且未定义响应状态,则返回第一个范围的第一个状态。例如,具有 4XX 和 5XX 响应范围的操作将返回 400 响应。
- 如果您的操作仅具有默认响应,则返回的响应取决于操作方法:
- 如果使用的方法是 POST,则返回 201 响应。
- 对于其他方法,如果未定义响应正文,则返回 204 响应;如果定义了响应正文,则返回 200 响应。
- 如果您的操作没有定义的响应,则返回 200 响应。
- 1XX 响应不受模拟支持。如果操作具有 1XX 响应范围或在此范围内定义了响应代码,则返回 404 响应。
组合
- All of:如果定义了示例,则返回该示例。如果未为数据类型定义示例,则合并类型的属性,并使用在属性级别定义的示例或生成示例值。如果在不同类型中两次定义了某个属性,则仅保留最后一个值。丢弃基元类型,仅返回对象。
- Any of 或 One of:如果定义了示例,则返回该示例。如果未定义示例,则从列表中的第一个类型生成响应。
限制
- Available in request only:该属性将从生成的示例中排除。
- Available in response only:该属性将包含在生成的示例中。
- Available in request and response:该属性将包含在生成的示例中。
在数据类型级别提供的示例优先于属性。如果定义为 Available in request only 的属性包含在示例中,则它将在响应中返回。如果定义为 Available in response only 或 Available in request and response 的属性未包含在示例中,则它不会在响应中返回。