如何为每个 HTTP 状态代码提供单独的示例?
How to provide separate examples for each HTTP status code?
我 运行 在尝试指示 Dredd 发出不同的请求以触发两种不同的情况时遇到问题:代码 201 成功和代码 400 失败。
我尝试为每个 HTTP 状态代码设置一个单独的示例,但没能成功。
我可以在 requestBody
中添加 example
部分,但随后它将在两个示例中使用 - 用于成功和失败。
openapi: 3.0.2
info:
description: Body example per HTTP code illustration
version: 1.0.0
title: Profile
tags:
- name: profile
description: User profiles
paths:
/profiles:
post:
tags:
- profiles
summary: Create profile
operationId: createProfile
requestBody:
description: Create Profile
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProfile'
required: true
responses:
'201':
description: Successful operation
headers:
Location:
schema:
type: string
description: Profile location
'400':
description: Profile is invalid (missing fields/null values)
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileCreationError'
examples:
failing_scenrio:
summary: An example tailored to work with Dredd
value:
name: can't be blank
email: can't be blank
components:
schemas:
CreateProfile:
type: object
required:
- name
- email
- age
properties:
name:
type: string
email:
type: string
age:
type: integer
format: int32
minimum: 0
ProfileCreationError:
type: object
properties:
name:
type: string
email:
type: string
age:
type: integer
我希望能够 运行 测试两个 HTTP 代码:201 和 400。关于如何使用 path
参数做同样事情的示例加分。例如,为 /profiles/{id}
(即 200 和 404)提供已找到和未找到的示例。
OpenAPI 3 支持目前(2019 年 7 月,Dredd v11.2.9)处于试验阶段,此特定行为仍未定义。该问题被跟踪为 GitHub issue #1257。我建议您订阅该问题以查看它何时得到解决或考虑提供解决方案。
我 运行 在尝试指示 Dredd 发出不同的请求以触发两种不同的情况时遇到问题:代码 201 成功和代码 400 失败。
我尝试为每个 HTTP 状态代码设置一个单独的示例,但没能成功。
我可以在 requestBody
中添加 example
部分,但随后它将在两个示例中使用 - 用于成功和失败。
openapi: 3.0.2
info:
description: Body example per HTTP code illustration
version: 1.0.0
title: Profile
tags:
- name: profile
description: User profiles
paths:
/profiles:
post:
tags:
- profiles
summary: Create profile
operationId: createProfile
requestBody:
description: Create Profile
content:
application/json:
schema:
$ref: '#/components/schemas/CreateProfile'
required: true
responses:
'201':
description: Successful operation
headers:
Location:
schema:
type: string
description: Profile location
'400':
description: Profile is invalid (missing fields/null values)
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileCreationError'
examples:
failing_scenrio:
summary: An example tailored to work with Dredd
value:
name: can't be blank
email: can't be blank
components:
schemas:
CreateProfile:
type: object
required:
- name
- email
- age
properties:
name:
type: string
email:
type: string
age:
type: integer
format: int32
minimum: 0
ProfileCreationError:
type: object
properties:
name:
type: string
email:
type: string
age:
type: integer
我希望能够 运行 测试两个 HTTP 代码:201 和 400。关于如何使用 path
参数做同样事情的示例加分。例如,为 /profiles/{id}
(即 200 和 404)提供已找到和未找到的示例。
OpenAPI 3 支持目前(2019 年 7 月,Dredd v11.2.9)处于试验阶段,此特定行为仍未定义。该问题被跟踪为 GitHub issue #1257。我建议您订阅该问题以查看它何时得到解决或考虑提供解决方案。