首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >动态Json对象在OpenApiSchema中动态生成C#

动态Json对象在OpenApiSchema中动态生成C#
EN

Stack Overflow用户
提问于 2022-10-08 04:32:59
回答 1查看 121关注 0票数 1

我希望从OpenApiSchema 6中的任何给定Json对象动态生成.Net。我在代码中没有clr类型可以自动生成Swashbuckle使用的Open,并且需要通过编程方式这样做,并且不需要使用单个对象生成器工具。此外,这些Json对象将由其他用户频繁地更改。我的目标是从给定的json有效负载动态创建OpenAPI规范。给出如下所示的随机Json,并使用C#生成类似于此方法的OpenApiSchemahttps://taerimhan.com/exploring-openapi-extensions-dynamic-schema/。我需要做的主要区别是将结果直接连接到OpenAPI,这样就可以动态地呈现schmeas和属性。看Json样本..。

代码语言:javascript
代码运行次数:0
运行
复制
{
    "id": "123",
    "unassumablepropertyname1": {
        "id": "456",
        "otherprop": null
    },
    "dynamicproperty": "456",
    "somethinguseful": "ABC123"
}

理想的结果是动态生成这样的OpenAPI V3规范.

代码语言:javascript
代码运行次数:0
运行
复制
{
"openapi": "3.0.1",
"info": {
    "title": "Sample API Capabilities",
    "version": "v1"
},
"paths": {
    "/api/DataRecord/UpsertDynamicObj12": {
        "post": {
            "tags": [
                "Dynamic Objects"
            ],
            "operationId": "UpsertDynamicExample",
            "requestBody": {
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/DynamicObj12"
                        }
                    },
                    "text/json": {
                        "schema": {
                            "$ref": "#/components/schemas/DynamicObj12"
                        }
                    },
                    "application/*+json": {
                        "schema": {
                            "$ref": "#/components/schemas/DynamicObj12"
                        }
                    }
                }
            },
            "responses": {
                "200": {
                    "description": "Success"
                }
            }
        }
    }
},
"components": {
    "schemas": {
        "DynamicObj12": {
            "required": [
                "id"
            ],
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "dynamicproperty": {
                    "type": "string"
                },
                "somethinguseful": {
                    "type": "string"
                },
                "unassumablepropertyname1": {
                    "type": "array",
                    "items": {
                        "$ref": "#/components/schemas/UnassumablePropertyName1"
                    },
                    "nullable": true
                }
            },
            "additionalProperties": false
        },
        "UnassumablePropertyName1": {
            "required": [
                "id"
            ],
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "otherprop": {
                    "type": "string",
                    "format": "uuid"
                }
            },
            "additionalProperties": false
        }
    }
}
}

我查看了下面的资源,这些资源非常接近,但是我正在寻找一个C#解决方案,这样我就可以对许多不同Json形状的对象使用Swashbuckle。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-10 23:38:20

不幸的是,从我所探讨的情况来看,这是不可能的。在Swashbuckle中构建OpenAPI片段是可能的,但我不知道如何在您的情况下应用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73994401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档