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.