gpt4 book ai didi

postman - 如何验证组件模式中的嵌套属性(Postman 中的 openapi 3)

转载 作者:行者123 更新时间:2023-12-05 05:03:14 27 4
gpt4 key购买 nike

我正在处理 OpenAPI 3 架构。

我想在响应内容中使用 components.schemas 中的数据模型,并在该数据模型中包含一些必需的嵌套属性。但是,似乎没有应用 required 验证。我正在使用模拟服务器在 Postman 中对此进行测试。

这是我的架构:

{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Usage stats API"
},
"servers": [
{
"url": "http://some-middleware-endpoint.com"
}
],
"paths": {
"/publishers/{publisherId}/files/{fileId}": {
"get": {
"summary": "Get single file for publisher",
"parameters": [
{
"name": "publisherId",
"in": "path",
"description": "ID of the publisher",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "fileId",
"in": "path",
"description": "ID of the file",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "File for publisher",
"headers": {
"Content-Type": {
"description": "application/json"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"meta"
],
"properties": {
"meta": {
"type": "object",
"required": ["page"],
"properties": {
"$ref": "#/components/schemas/Pagination"
}
}
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Pagination": {
"properties": {
"page": {
"required": ["current-page", "per-page", "from", "to", "total", "last-page"],
"type": "object",
"properties": {
"current-page": {
"type": "integer"
},
"per-page": {
"type": "integer"
},
"from": {
"type": "integer"
},
"to": {
"type": "integer"
},
"total": {
"type": "integer"
},
"last-page": {
"type": "integer"
}
}
}
}
}

}
}
}

此响应通过验证:

{
"meta": {
"page": {}
}
}

即使我需要的所有属性 ("required": ["current-page", "per-page", "from", "to", "total", "last-page "]) 不存在。

基本上,我希望 page 及其所有嵌套属性都是必需的。

我想我在定义属性时做错了什么。任何帮助表示赞赏!

最佳答案

哦,我想我的问题是将 $ref 提高了一个级别。

以下内容似乎在 responses.content 中起作用。

"meta": {
"type": "object",
"required": [
"page"
],
"$ref": "#/components/schemas/Pagination"
}

代替

"meta": {
"type": "object",
"required": ["page"],
"properties": {
"$ref": "#/components/schemas/Pagination"
}
}

关于postman - 如何验证组件模式中的嵌套属性(Postman 中的 openapi 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61794232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com