Ошибка строковых параметров ASP.NET Web Api Swagger - нет описания

Я использую пользовательский интерфейс Swagger для тестирования своего приложения ASP.NET Web Api. Я добавил класс, чтобы разрешить параметры работы

public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
    if (operation.Parameters == null) 
        operation.Parameters = new List<OpenApiParameter>();

    operation.Parameters.Add(new OpenApiParameter
    {
        Name = "ApiKey",
        In = ParameterLocation.Header,
        Required = true,
        Schema = new OpenApiSchema
        {
            Type = "String"
        }
    });
    operation.Parameters.Add(new OpenApiParameter
    {
        Name = "Authentication",
        In = ParameterLocation.Header,
        Required = false,
        Schema = new OpenApiSchema
        {
            Type = "String"
        }
    });
}

В моем Startup.cs я добавил эту строку в метод ConfigurationServices

c.OperationFilter<CustomHeaderSwaggerAttribute>();

Когда я пытаюсь протестировать один из методов контроллера, мой строковый параметр ApiKey всегда показывает ошибку, независимо от того, что я помещаю в текстовое поле.

введите описание изображения здесь


person Ryan    schedule 12.01.2021    source источник
comment
Вероятно, это не ответ, но его можно быстро проверить. Вы пробовали: Type = "string" со строчной буквой S?   -  person SBFrancies    schedule 12.01.2021
comment
@SBFrancies создают и отвечают за меня. Преобразование String в строку сработало!   -  person Ryan    schedule 12.01.2021


Ответы (1)


Я не уверен насчет свойства Schema, но в прошлом у меня работало следующее (установка type на string):

operation.Parameters.Add(new Parameter
        {
            name = "ApiKey",
            @in = ParameterLocation.Header,
            required = true,
            type = "string"                
        });

Дополнительные сведения см. В этом сообщении.

person Ehsan Sajjad    schedule 12.01.2021