I can't seem to figure out why swagger validation is failing
What is strange is that if I add more than one path the validation only complains about the last one. Then if I remove the last one it starts complaining about the one above it.
在swagger编辑器中工作时,一切似乎都可以验证。
招摇的文件如下:
{
"swagger":"2.0",
"info":{
"version":"0.0.1",
"title":"Bla API"
},
"schemes":[
"https"
],
"produces":[
"application/json"
],
"host":"rest.bla.com",
"basePath":"/api/v2/fleet",
"paths":{
"/{organisation_id}/access_groups":{
"get":{
"tags":[
"Access Group"
],
"summary":"Get access groups\n",
"description":"Gets a list of 'access_group' objects based on the provided search criteria\n",
"parameters":[
{
"in":"path",
"name":"organisation_id",
"required":"true",
"type":"string"
},
{
"name":"term",
"in":"query",
"required":"false",
"type":"string"
},
{
"name":"take",
"in":"query",
"required":"true",
"type":"integer",
"format":"int32"
},
{
"name":"skip",
"in":"query",
"type":"integer",
"format":"int32",
"required":"true"
},
{
"name":"order",
"in":"query",
"type":"string"
}
],
"responses":{
"403":{
"description":"Permission Denied",
"schema":{
"$ref":"#/definitions/error"
}
},
"200":{
"description":"OK",
"schema":{
"type":"object",
"properties":{
"data":{
"type":"array",
"items":{
"$ref":"#/definitions/access-group-response"
}
},
"pagination":{
"$ref":"#/definitions/pagination"
}
}
}
}
}
}
}
},
"definitions":{
"access-group":{
"description":"an object which provides the ability to grant access to specific assets\n",
"properties":{
"name":{
"type":"string"
}
}
},
"access-group-response":{
"properties":{
"data":{
"$ref":"#/definitions/access-group"
},
"links":{
"type":"array",
"items":{
"$ref":"#/definitions/link"
}
}
}
},
"error":{
"type":"array",
"items":{
"type":"object",
"properties":{
"type":{
"type":"string"
},
"code":{
"type":"string"
},
"message":{
"type":"string"
},
"key":{
"type":"string"
}
}
}
},
"link":{
"properties":{
"href":{
"type":"string"
},
"rel":{
"type":"string"
}
}
},
"pagination":{
"properties":{
"page":{
"type":"number",
"format":"int32"
},
"total":{
"type":"number",
"format":"int32"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
而验证错误如下:
{
"schemaValidationMessages":[
{
"level":"error",
"domain":"validation",
"keyword":"oneOf",
"message":"instance failed to match exactly one schema (matched 0 out of 2)",
"schema":{
"loadingURI":"http://swagger.io/v2/schema.json#",
"pointer":"/definitions/parametersList/items"
},
"instance":{
"pointer":"/paths/~1{organisation_id}~1access_groups/get/parameters/0"
}
},
{
"level":"error",
"domain":"validation",
"keyword":"oneOf",
"message":"instance failed to match exactly one schema (matched 0 out of 2)",
"schema":{
"loadingURI":"http://swagger.io/v2/schema.json#",
"pointer":"/definitions/parametersList/items"
},
"instance":{
"pointer":"/paths/~1{organisation_id}~1access_groups/get/parameters/1"
}
},
{
"level":"error",
"domain":"validation",
"keyword":"oneOf",
"message":"instance failed to match exactly one schema (matched 0 out of 2)",
"schema":{
"loadingURI":"http://swagger.io/v2/schema.json#",
"pointer":"/definitions/parametersList/items"
},
"instance":{
"pointer":"/paths/~1{organisation_id}~1access_groups/get/parameters/2"
}
},
{
"level":"error",
"domain":"validation",
"keyword":"oneOf",
"message":"instance failed to match exactly one schema (matched 0 out of 2)",
"schema":{
"loadingURI":"http://swagger.io/v2/schema.json#",
"pointer":"/definitions/parametersList/items"
},
"instance":{
"pointer":"/paths/~1{organisation_id}~1access_groups/get/parameters/3"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
对象的required属性parameters应为布尔类型,而不是字符串。
如果将所有"required":"true"s "required":true和替换"required":"false"为"required":false您的示例,则可以确定。
| 归档时间: |
|
| 查看次数: |
3641 次 |
| 最近记录: |