#swagger
#swagger
Вопрос:
Кажется, я не могу понять, почему сбой проверки чванства
Странно то, что если я добавляю более одного пути, проверка жалуется только на последний. Затем, если я удалю последний, он начнет жаловаться на тот, что над ним.
При работе в редакторе swagger все, кажется, проверяется.
Документ 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 groupsn",
"description":"Gets a list of 'access_group' objects based on the provided search criterian",
"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 assetsn",
"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"
}
}
}
}
}
в то время как ошибка проверки выглядит следующим образом:
{
"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"
}
}
]
}
Ответ №1:
required
Свойство parameters
объекта должно иметь логический тип, а не строку.
Если вы замените все "required":"true"
s на "required":true
и "required":"false"
s на "required":false
, ваш пример подтвердит правильность.