bad*_*uck 3 laravel swagger openapi
我正在尝试为一个项目(用 Laravel 编写)编写 OpenAPI 文档,并在几个 API 点上苦苦挣扎。
一返回
{
"active_options": {
"1": {
"name": "name1",
"type": "type1"
},
"2": {
"name": "name2",
"type": "type2"
},
"3": {
"name": "name3",
"type": "type3"
}
},
"server": {
"url": "URL...",
"settings1": "value"
},
"message": "Server settings retrieved."
}
Run Code Online (Sandbox Code Playgroud)
我正在努力解决如何使用 l5-swagger 插件编写此注释。“1”、“2”、“3”是可选的,它们的任意组合都有效。
我想使用optionalProperties,但我不知道如何将它们组合在一起。
这是我得到的最接近的:
* @OA\Response(
* response=200,
* description="Settings",
* @OA\JsonContent(
* @OA\Property(property="options",
* @OA\Items(
* @OA\Property(property="name", type="string"),
* @OA\Property(property="type", type="string")
* )
* ),
* )
* ),
Run Code Online (Sandbox Code Playgroud)
但示例生成的是这样的:
{
"options": [
{
"name": "string",
"type": "string"
}
]
}
Run Code Online (Sandbox Code Playgroud)
显然缺少"1":...部分。也许更好的问题是如何处理未命名的属性?
这是我的解决方案:
/**
*
* @OA\Schema(
* schema="ExampleResponse",
* @OA\Xml(name="ExampleResponse"),
* @OA\Property(property="message", type="string", example="My solution."),
* @OA\Property(property="errors", type="object",
* @OA\AdditionalProperties(type="array",
* @OA\Items(
* @OA\Property(property="name", type="string"),
* @OA\Property(property="type", type="string")
* )
* )
* ),
* )
*
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2846 次 |
| 最近记录: |