Skip to content

Incorrect OpenAPI definition when using FromForm with IEnumerable parameters #62328

Open
@marcominerva

Description

@marcominerva

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

I'm using .NET 9 OpenAPI support. With the following endpoint:

app.MapPost("/api/documents", ([FromForm] int[] values) =>
{
    return TypedResults.Ok();
});

I get the following definition:

"requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "values": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "format": "int32"
                    }
                  }
                }
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "values": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "format": "int32"
                    }
                  }
                }
              }
            }
          },
          "required": true
        }

If, instead, I change the type to IEnumerable:

app.MapPost("/api/documents", ([FromForm] IEnumerable<int> values) =>
{
    return TypedResults.Ok();
});

The OpenAPI definition becomes:

"requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          },
          "required": true
        },

.NET Version

9.0.301

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-minimalIncludes minimal APIs, endpoint filters, parameter binding, request delegate generator etcfeature-openapi

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions