Skip to content

[OpenApi] Preview 4: Cannot set Header on OpenApiOperation #61898

Closed
@erwinkramer

Description

@erwinkramer

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

Headers are readonly on OpenApiOperation.

In a IOpenApiOperationTransformer my exception gets triggered for 200 responses (that i don't have control over, it's just simple 200 responses generated in a minimal API):

 private void AddHeadersToResponses(OpenApiOperation operation, OpenApiDocument document)
    {
        if (operation.Responses == null) return;

        foreach (var response in operation.Responses)
        {
            if(response.Value.Headers == null)
                throw new InvalidOperationException($"Headers is null and it's read only :(( @ {response.Key}"); // TODO

            response.Value.Headers["API-Version"] = new OpenApiHeaderReference("API-Version", document);
            response.Value.Headers["Access-Control-Allow-Origin"] = new OpenApiHeaderReference("Access-Control-Allow-Origin", document);
            response.Value.Headers["Access-Control-Expose-Headers"] = new OpenApiHeaderReference("GenericStringHeader", document);

            if (response.Key[0] is '2' or '4')
            {
                response.Value.Headers["X-Rate-Limit-Limit"] = new OpenApiHeaderReference("X-Rate-Limit-Limit", document);
            }
        }
    }

Expected Behavior

No response

Steps To Reproduce

Check the branch for this PR: erwinkramer/bank-api#6

Exceptions (if any)

No response

.NET Version

10.0.100-preview.4.25258.110

Anything else?

No response

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