dotnet/aspnetcore

Set `AdditionalProperties` if Type has `JsonExtensionData` attribute.

Open

#66338 opened on Apr 16, 2026

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C# (37,933 stars) (10,653 forks)batch import
area-minimalfeature-openapifeature-requesthelp wanted

Description

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.

Contributor guide