我试图根据以下定义在 SwaggerHub 模拟 POST 请求:
post:
summary: "Creates order"
description: ""
consumes:
- application/json
parameters:
- name: "order"
in: body
description: "New order"
schema:
$ref: "#/definitions/Order"
responses:
201:
description: "Order succesfully created."
400:
description: "Order can't be created"
模型定义为:
definitions:
Order:
type: object
properties:
id:
type: string
format: uuid
example: d290f1ee-6c54-4b01-90e6-d701748f0851
marketPair:
type: integer
format: "int64"
example: "BTC_TRY"
amount:
type: number
format: "int64"
example: "1.3"
price:
type: integer
format: "int32"
example: "467"
operationType:
type: string
description: "Type of operation"
enum:
- "buy"
- "sell"
example: "buy"
orderType:
type: string
description: "Order Type"
enum:
- "limit"
- "market"
- "stop"
default: "limit"
example: "limit"
xml:
name: "Order"
每次我尝试 POST 缺少字段的错误 JSON 或什至正文中根本没有 JSON 时,我仍然收到 201 代码,这绝对不应该是 201。
我的配置中是否缺少某些内容,或者 SwaggerHub 需要进行哪些更改才能识别我的规范并开始检查有效负载是否符合此端点的规范要求?
模拟不会以任何方式验证输入。它只是返回为操作定义的最低 HTTP 状态代码 - 在您的示例中为状态 201。
From SwaggerHub 文档 https://support.smartbear.com/swaggerhub/docs/integrations/api-auto-mocking.html:
请注意,模拟不支持业务逻辑,即它无法根据输入发送特定响应。
...
该模拟根据每个 API 操作的响应和规范中定义的响应媒体类型为每个 API 操作生成静态响应。
如果某个操作有多个响应代码,则模拟将返回具有最低状态代码的响应。例如,如果操作具有响应 201、202 和 400,则模拟将返回 201 响应。
您可能想向 SwaggerHub 开发人员提交功能请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)