使用 dredd 验证 OpenAPI 响应
Validate OpenAPI response with dredd
我有一个 OpenAPI v3 规范文件,其中包含以下内容(仅显示片段):
paths:
/global/name:
get:
description: Some description
tags:
- Global settings
operationId: getGlobalSettingsName
responses:
# Response code
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/globalSettingsName'
components:
schemas:
globalSettingsName:
type: object
properties:
name:
type: integer
description: 'ID'
example: 1
required:
- name
但服务器响应是:
{
"name": "somestring"
}
请注意名称 属性 类型是 integer
,在服务器响应中,它是 string
(故意)但 dredd
请求通过(成功)。
dredd
不检查响应 属性 类型吗?
我将响应重新定义为 string
(不是 JSON):
responses:
# Response code
'200':
description: Successful response
content:
application/json:
schema:
type: string
和dredd
也没有抱怨。
我什至更改了架构的 属性:
globalSettingsName:
type: object
properties:
www:
type: string
description: 'some description'
example: 'somestring'
required:
- www
预期失败时结果相同(成功)。
dredd
不支持这些验证吗?我使用的规范有误吗?
导致当前版本(8.0.5)只支持example value in content: https://github.com/apiaryio/dredd/issues/1281
我有一个 OpenAPI v3 规范文件,其中包含以下内容(仅显示片段):
paths:
/global/name:
get:
description: Some description
tags:
- Global settings
operationId: getGlobalSettingsName
responses:
# Response code
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/globalSettingsName'
components:
schemas:
globalSettingsName:
type: object
properties:
name:
type: integer
description: 'ID'
example: 1
required:
- name
但服务器响应是:
{
"name": "somestring"
}
请注意名称 属性 类型是 integer
,在服务器响应中,它是 string
(故意)但 dredd
请求通过(成功)。
dredd
不检查响应 属性 类型吗?
我将响应重新定义为 string
(不是 JSON):
responses:
# Response code
'200':
description: Successful response
content:
application/json:
schema:
type: string
和dredd
也没有抱怨。
我什至更改了架构的 属性:
globalSettingsName:
type: object
properties:
www:
type: string
description: 'some description'
example: 'somestring'
required:
- www
预期失败时结果相同(成功)。
dredd
不支持这些验证吗?我使用的规范有误吗?
导致当前版本(8.0.5)只支持example value in content: https://github.com/apiaryio/dredd/issues/1281