Данные не соответствуют ни одной схеме из oneOf - Ошибка

Я получаю следующую ошибку в онлайн-редакторе 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

Я попытался изменить тип: строка под определением, но все равно не повезло. Я почти уверен, что мне не хватает правильного значения типа здесь, ценю любую помощь

Спасибо вам


person anoop    schedule 30.09.2015    source источник
comment
Вы исправили эту проблему?   -  person Navid Shakibapour    schedule 05.03.2016


Ответы (1)


При определении параметра заголовка нельзя использовать schema, это разрешено, только когда используется in: body. Следовательно, параметр заголовка может быть только атомарным свойством (строка, число, ...).

Похоже, вы хотите определить параметр заголовка многократного использования, вы делаете это следующим образом:

  • Определите token_string в разделе параметров
  • Затем используйте его с параметрами операции $refin

(Я также добавляю фиктивные getGroupWithKey и errorModel, чтобы определение было верным):

swagger: '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

Вы, конечно, можете определить свой параметр встроенным, если хотите. Предлагаю вам взглянуть на другой вопрос по той же теме Определить глобальные параметры

person Arnaud Lauret    schedule 16.05.2016