У меня есть веб-API со следующей моделью:
public class ParseLicenseRequest
{
public const string emptyStringDefault = "";
[Required(AllowEmptyStrings = false)]
public string LicenseKey { get; set; }
[DefaultValue(emptyStringDefault)]
public string Sid { get; set; } = emptyStringDefault;
public bool ShortFormat { get; set; }
}
При компиляции кода это выглядит нарочито так:
Я пытаюсь установить значение sid по умолчанию, чтобы оно было пустым:
"sid" : ""
Однако он не устанавливает значение по умолчанию как пустое.
Отвечает ли это на ваш вопрос? Значение по умолчанию для параметра Swagger
@tymtam нет, потому что я сделал именно то, что он сказал
Вы используете github.com/heldersepu/Swagger-Net или другую версию? Какой номер версии вы используете?
Привет, @DanaGriff! Помог ли мой ответ решить вашу проблему? Если да, не могли бы вы принять его? Если нет, не могли бы вы сообщить мне об этом? См. Как принять в качестве ответа. Спасибо.





Я думаю, вы могли бы добавить собственный ISchemaFilter, чтобы изменить значение примера:
Примечание: Не уверен, какой у вас версия Swagger, другой swagger сделает параметр в Apply() другим.
public class CustomSchemaFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (context.Type == typeof(ParseLicenseRequest))
{
schema.Example = new OpenApiObject
{
["Sid"] = new OpenApiString("")
};
}
}
}
Зарегистрируйте фильтр в Startup.cs:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebapiProject5", Version = "v1" });
c.SchemaFilter<CustomSchemaFilter>();
});
Справка:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore#apply-schema-filters-to-specific-types
Это чванливая «проблема». Код будет работать так, как вы ожидаете.