dotnet/aspnetcore
Set `AdditionalProperties` if Type has `JsonExtensionData` attribute.
已关闭
#66,338 创建于 2026年4月16日
area-minimalfeature-openapifeature-requesthelp wanted
仓库指标
- 星标
- (37,933 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
Is there an existing issue for this?
- I have searched the existing issues
Is your feature request related to a problem? Please describe the problem.
No problem, just a nice to have.
Describe the solution you'd like
This was originally filed in Microsoft/OpenAPI.NET under #2809
If a schema has a field with the [JsonExtensionData] attribute it should specify AdditionalProperties: {} or AdditionalProperties: true to allow for a free-form object.
Describe alternatives you've considered I've setup my own SchemaTransformer that does this:
options.AddSchemaTransformer((schema, context, cancellationToken) =>
{
var extensionDataProperty = context.JsonTypeInfo.Type
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.FirstOrDefault(p => Attribute.IsDefined(p, typeof(JsonExtensionDataAttribute)));
if (extensionDataProperty is not null)
{
schema.AdditionalPropertiesAllowed = true;
schema.AdditionalProperties = new OpenApiSchema();
}
return Task.CompletedTask;
});
Additional context
I believe it makes sense for this to be supported because if you have a model that has ExtensionData it accepts additional properties, but the OpenApi schema gen doesn't represent this without manual intervention.