如何通过C#代码配置Swagger规范扩展,为info节点添加自定义属性
你用的Swashbuckle.AspNetCore库提供的OpenApiInfo原生支持扩展属性添加,不需要自定义子类继承,直接操作自带的Extensions集合即可:
正确实现代码
options.SwaggerDoc(Swagger.Version, new OpenApiInfo { Title = "Service Api", Version = Swagger.Version, Description = "This describes the routes associated with the Service Api.", // 新增扩展属性配置 Extensions = { // 键为带x-前缀的自定义属性名,值为对应IOpenApiAny类型的内容 { "x-test", new Microsoft.OpenApi.Any.OpenApiString("New Value") }, // 可继续添加更多扩展属性 // { "x-author", new OpenApiString("团队名称") } } });
原方案失效原因
Swashbuckle序列化OpenAPI文档时,只会识别OpenApiInfo原生定义的标准属性和Extensions集合内的键值对,自定义子类新增的属性不会被纳入序列化逻辑,因此无法生成到最终的swagger.json中。
内容的提问来源于stack exchange,提问作者ScubaSteve
相关产品推荐
相关产品推荐

