首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dredd验证OpenAPI响应

使用dredd验证OpenAPI响应
EN

Stack Overflow用户
提问于 2019-03-19 20:13:14
回答 1查看 210关注 0票数 1

我有一个包含以下内容的OpenAPI v3规范文件(仅显示片断):

代码语言:javascript
复制
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

但是服务器的响应是:

代码语言:javascript
复制
{
  "name": "somestring"
}

注意,name属性类型是integer,并且在服务器响应中,它是一个string (有意),但dredd请求传递(成功)。

dredd不检查响应属性类型吗?

我将响应重新定义为string (而不是JSON):

代码语言:javascript
复制
responses:
    # Response code
    '200':
      description: Successful response
      content:
        application/json:
          schema:
            type: string

dredd对此也没有抱怨。

我甚至更改了模式的属性:

代码语言:javascript
复制
    globalSettingsName:
      type: object
      properties:
        www:
          type: string
          description: 'some description'
          example: 'somestring'
      required:
        - www

和预期失败时的相同(成功)结果。

dredd不支持这些验证吗?我是不是用错了规范?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-20 00:44:07

导致当前版本(8.0.5)仅支持content中的example值:https://github.com/apiaryio/dredd/issues/1281

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55240826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档