Skip to content

Required attribute of non-required query parameters does not get rendered #427

@jbroenstrup

Description

@jbroenstrup

I am a bit confused concerning the openapi serialization.

This code

var document = new OpenApiDocument
{
    Components = new OpenApiComponents()
};
document.Components.Parameters.Add("foo",
    new OpenApiParameter()
    {
        Required = true,
        Name = "bar",
        In = ParameterLocation.Query
    });

using (var sw = new StringWriter())
{
    var writer = new OpenApiJsonWriter(sw);
    document.SerializeAsV3(writer);
    var openapiDefinition = sw.ToString();
    Console.WriteLine(openapiDefinition);
}

creates this openapi definition:

{
  "openapi": "3.0.1",
  "info": { },
  "paths": { },
  "components": {
    "parameters": {
      "foo": {
        "name": "bar",
        "in": "query",
        "required": true
      }
    }
  }
}

But if I set the parameter to be not required, the required property is missing from the openapi definition of the parameter entirely.

This is a problem, because the third party tool I am using to generate client code for this API depends on said required property to always being there, either true or false.

Is there a possibility to force the serialization to include the required property?

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:by-designAn issue we can't resolve because it's by design

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions