Swagger.json generiert mit falschem Fall "Typ": "String"

Sep 12 2020

Bei der Fehlerbehebung bei diesem Problem haben wir festgestellt, dass swagger.json eine falsche Groß- und Kleinschreibung für enthält

"type": "String"

im generierten Code

  "/api/FrameLookUp": {
      "post": {
        "tags": [
          "Frame"
        ],
        "operationId": "FrameLookup",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "description": "access token",
            "required": true,
            "type": "String"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/FrameRequest" } } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/FrameResponse"
            }
          }
        }
      }
    }
  }

Ich habe den folgenden ISchemaFilter

public class SwaggerEnumFilter : ISchemaFilter
{
    public void Apply(OpenApiSchema model, SchemaFilterContext context)
    {
         
        if (model == null)
            throw new ArgumentNullException("model");
        if (context == null)
            throw new ArgumentNullException("context");
        if (context.Type.IsEnum)
            model.Extensions.Add(
                "x-ms-enum",
                new OpenApiObject
                {
                    ["name"] = new OpenApiString(context.Type.Name),
                    ["modelAsString"] = new OpenApiBoolean(false)
                }
            );
    }
}

Was könnte das verursachen?

Antworten

1 KirstenGreed Sep 13 2020 at 03:17

Es stellte sich heraus, dass ich benutzte

services.AddSwaggerGen(c =>
        {
            c.OperationFilter<AuthorizationHeaderParameterOperationFilter>();

und in der Klasse hatte ich

Schema = new OpenApiSchema() { Type = "String" },

es sollte "string" als Kleinbuchstaben haben.