2015-11-24 2 views
0

Я пытаюсь ссылаться на некоторые параметры, которые я использую в нескольких путях в разделе определения файла yagl swagger, и даже если документация визуализируется как ожидалось и создаются запросы правильно, при использовании кнопки try it out, я получаю эту ошибку.Ссылка на параметр в определении того же причину причины причины Ошибка Swagger

Swagger Error 
A deterministic version of a JSON Schema object. 
Jump to line 45 
Details 
Object 
code: "OBJECT_ADDITIONAL_PROPERTIES" 
message: "Additional properties not allowed: in,name" 
path: Array [2] 
0: "definitions" 
1: "limitsParam" 
description: "A deterministic version of a JSON Schema object." 
level: 900 
type: "Swagger Error" 
lineNumber: 45 

Фактическая YAML это

swagger: "2.0" 
info: 
    version: 1.0.0 
    title: Swagger Petstore 
    description: A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification 
    termsOfService: http://helloreverb.com/terms/ 
    contact: 
    name: Wordnik API Team 
    email: [email protected] 
    url: http://madskristensen.net 
    license: 
    name: MIT 
    url: http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT 
host: petstore.swagger.wordnik.com 
basePath: /api 
schemes: 
    - http 
consumes: 
    - application/json 
produces: 
    - application/json 
paths: 
    /pets: 
    get: 
     description: | 
     Returns all pets from the system that the user has access to 
     Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. 
     Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. 
     operationId: findPets 
     parameters: 
     - $ref: '#/definitions/tagsParam' 
     - $ref: '#/definitions/limitsParam' 


definitions: 
    tagsParam: 
    name: tags 
    in: query 
    description: tags to filter by 
    required: false 
    type: array 
    collectionFormat: csv 
    items: 
     type: string 
    limitsParam: 
    name: limit 
    in: query 
    description: maximum number of results to return 
    required: false 
    type: integer 
    format: int32 

Который состоит из нескольких первых строк отдельного примера swagger.yaml и внутри определения является parameters.yaml внутри same folder

Я отлажены ссылки поэтому они указывают на фактическое определение внутри того же файла, а не на другой файл. Если вы скопируете и вставьте этот yaml в online editor, вы получите эту точную ошибку.

ответ

0

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

swagger: "2.0" 
info: 
    version: 1.0.0 
    title: Swagger Petstore 
    description: A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification 
    termsOfService: http://helloreverb.com/terms/ 
    contact: 
    name: Wordnik API Team 
    email: [email protected] 
    url: http://madskristensen.net 
    license: 
    name: MIT 
    url: http://github.com/gruntjs/grunt/blob/master/LICENSE-MIT 
host: petstore.swagger.wordnik.com 
basePath: /api 
schemes: 
    - http 
consumes: 
    - application/json 
produces: 
    - application/json 
paths: 
    /pets: 
    get: 
     description: | 
     Returns all pets from the system that the user has access to 
     Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. 
     Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. 
     operationId: findPets 
     parameters: 
     - $ref: '#/parameters/tagsParam' 
     - $ref: '#/parameters/limitsParam' 


parameters: 
    tagsParam: 
    name: tags 
    in: query 
    description: tags to filter by 
    required: false 
    type: array 
    collectionFormat: csv 
    items: 
     type: string 
    limitsParam: 
    name: limit 
    in: query 
    description: maximum number of results to return 
    required: false 
    type: integer 
    format: int32 
+0

Не решить эту проблему для меня, к сожалению. –