数据与'oneOf'中的任何模式都不匹配 - 错误

时间:2015-09-30 18:39:54

标签: swagger swagger-2.0 swagger-editor

使用swagger在线编辑器遇到以下错误 数据与'oneOf'

中的任何模式都不匹配
'/tenants/tenant_id/groups/group_id':
get:
  description: 'Returns the group with specific id ( id, name, description, tenant_id... ) along with end point pools ( id, name, description, source, tenant_id... ) associated with this particular groups'
  operationId: getGroupWithKey
  consumes:
    - application/json
    - text/plain, */*
  produces:
    - text/xml
  parameters:
    - in: header
      name: 'X-AuthToken'
      description: authentication token obtained during login
      required: true
      schema:
        $ref: '#/definitions/token_string'
  responses:
    '200':
      description: OK (group with provided id received)
      schema:
        $ref: '#/definitions/getGroupWithKey'
    default:
      description: error
      schema:
        $ref: '#/definitions/errorModel'

definitions:
### Login Definitions ###      
  token_string:
    type: object
    required:
      - 'X-AuthToken'
    properties:
      X-AuthToken: 
        type: string

错误如下所示,第206行是以“参数”开头的行

✖ Swagger Error

Data does not match any schemas from 'oneOf'   
Jump to line 206
Details
Object
code: "ONE_OF_MISSING"   
message: "Data does not match any schemas from 'oneOf'"
path: Array [5] 
0: "paths"
1: "/tenants/tenant_id/groups/group_id"
2: "get"
3: "parameters"
4: "0"
inner: Array [2]
0: Object
code: "ONE_OF_MISSING"
message: "Data does not match any schemas from 'oneOf'"
path: Array [5]
inner: Array [2]
1: Object
code: "OBJECT_MISSING_REQUIRED_PROPERTY"
message: "Missing required property: $ref"
path: Array [5]
level: 900
type: "Swagger Error"
description: "Data does not match any schemas from 'oneOf'"
lineNumber: 206

我尝试更改类型:定义下的字符串,仍然没有运气。 我很确定我在这里错过了正确的类型值,感谢任何帮助

谢谢你

1 个答案:

答案 0 :(得分:2)

定义标头参数时,不能使用schema,只有在使用in: body时才允许使用$ref。 因此,header参数只能是原子属性(字符串,数字......)。

您似乎想要定义可重用的标头参数,您可以这样做:

  • 在参数部分
  • 中定义token_string
  • 然后在操作参数
  • 中使用getGroupWithKey

(我还添加了虚拟errorModelswagger: '2.0' info: version: 1.0.0 title: Header API description: A simple API to learn how you can define headers paths: '/tenants/tenant_id/groups/group_id': get: description: 'Returns the group with specific id ( id, name, description, tenant_id... ) along with end point pools ( id, name, description, source, tenant_id... ) associated with this particular groups' operationId: getGroupWithKey consumes: - application/json - text/plain, */* produces: - text/xml parameters: - $ref: '#/parameters/token_string' responses: '200': description: OK (group with provided id received) schema: $ref: '#/definitions/getGroupWithKey' default: description: error schema: $ref: '#/definitions/errorModel' parameters: token_string: in: header name: X-AuthToken type: string description: authentication token obtained during login required: true definitions: ### Login Definitions ### errorModel: type: string getGroupWithKey: type: string 以使定义有效):

{{1}}

如果需要,您当然可以定义内联参数。 我建议你看看同一主题Define global parameters

上的另一个问题