我想用 openAPI 規范創建一個 JSON。示例有效載荷格式api/endpoint如下,
"abc": {"name": "PA", "id": "21"}
所以這里是openapi JSON格式,
{
"openapi": "3.0.0",
"info": {...},
"paths": {
"api/endpoint": {
"put": {
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/putSchema"
}
}
}
}
}
}
},
"components": {
"schemas": {
"putSchema": {
"abc": { ----------> *
"type": "object",
"properties": {
"name": {...},
"id": {...}
}
}
}
}
}
}
但是我的有效載荷可能會有所不同,
"abc": {"name": "PA", "id": "21"}
"xyz": {"name": "ST", "id": "35"}
"def": {"name": "UV", "id": "94"}
不確定如何定義動態鍵名的 JSON 格式(此處為 abc/xyz/def) - (即)在 JSON 中填寫 * 的地方)。
所以我的查詢是如何在 JSON 中指定名稱不是靜態的鍵。
uj5u.com熱心網友回復:
在您的示例中,putSchema是一個字串到物件的映射,其中“abc”/“xyz”/等。是地圖中的關鍵。地圖是使用additionalProperties關鍵字定義的:
"putSchema": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"name": { ...},
"id": { ... }
}
}
}
如果您的有效負載只有一個根密鑰(例如,只有“abc”,但同時沒有“abc”和“xyz”),您可以添加"maxProperties": 1到您putSchema的根密鑰的數量來限制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510069.html
