Asp.net core 显示(值)数据注释-虚张声势-虚张声势页面
是否可以在招摇过市页面上显示参数的数据注释,例如最小值和最大值 我已经尝试将ShowExtensions和ShowCommonExtension设置为true或调用ShowExtensions(),但这并不能解决问题。字符串的范围属性和/或例如MaxLength(20)不会显示在“招摇过市”页面上 启动(代码片段) 框架/包Asp.net core 显示(值)数据注释-虚张声势-虚张声势页面,asp.net-core,swagger,swagger-ui,swashbuckle,swashbuckle.aspnetcore,Asp.net Core,Swagger,Swagger Ui,Swashbuckle,Swashbuckle.aspnetcore,是否可以在招摇过市页面上显示参数的数据注释,例如最小值和最大值 我已经尝试将ShowExtensions和ShowCommonExtension设置为true或调用ShowExtensions(),但这并不能解决问题。字符串的范围属性和/或例如MaxLength(20)不会显示在“招摇过市”页面上 启动(代码片段) 框架/包 .NET核心3.1 Swashback.AspNetCore(5.4.1) Swashback.AspNetCore.swagggergen(5.4.1) 控制器(代码
- .NET核心3.1
- Swashback.AspNetCore(5.4.1)
- Swashback.AspNetCore.swagggergen(5.4.1)
[HttpGet]
公共IEnumerable GetMethod([必需][范围(1,10)]int值)
{
大摇大摆的用户界面
我又挖了一些 它们对多个属性进行检查: 但我看到的唯一使用范围的单元测试是在模型上: 如果这是您真正关心的问题,请填写错误报告:
可能,是的:@HelderSepulveda感谢您的回复。问题似乎与OpenApi规范的V2有关。提供的示例是使用V2而不是我正在使用的OAS3版本。您能详细介绍一下“OpenApi规范问题”吗两者都有“最大值”和“最大值”选项minimum@HelderSepulveda请在Swashback.AspNetCore的问题页面上查看更详细的信息-你能展示你正在使用的swagger ui版本吗,这里有关于如何获得它的说明:感谢你为所描述的问题付出的努力和时间。我在GitHub是Swashback.AspNetCore的页面。也许你可以看一下,因为它包含额外的信息:@Odrai我用你在本期中提供的内容创建了一个swagger json…在我的swagger ui版本下看起来不错:一定是他们(Swashback.AspNetCore)您正在使用旧版本感谢您为我指出正确的方向。问题发生在当前可用的Swashback.AspNetCore(5.4.1版)NuGet包中。我克隆了当前的主源代码(5.4.2版),并添加了对测试项目的引用。经过一些测试,我可以说他们在最新版本中修复了该问题(主)版本。我们只需等待新的NuGet版本。最重要的部分是Swashback处理ConfigObject的ShowCommonExtensions属性的方式。
app.UseSwaggerUI(
options =>
{
options.ConfigObject = new ConfigObject
{
ShowCommonExtensions = true,
ShowExtensions = true
};
options.ConfigObject.AdditionalItems.Add("showCommonExtensions", true);
options.ShowExtensions();
[HttpGet]
public IEnumerable<string> GetMethod([Required] [Range(1, 10)] int value)
{
if (attribute is DefaultValueAttribute defaultValue && defaultValue.Value != null)
{
schema.Default = OpenApiAnyFactory.CreateFor(schema, defaultValue.Value);
}
else if (attribute is RegularExpressionAttribute regex)
{
schema.Pattern = regex.Pattern;
}
else if (attribute is RangeAttribute range)
{
schema.Maximum = decimal.TryParse(range.Maximum.ToString(), out decimal maximum)
? maximum
: schema.Maximum;
schema.Minimum = decimal.TryParse(range.Minimum.ToString(), out decimal minimum)
? minimum
: schema.Minimum;
}
public class MetadataType
{
[Required]
public string StringWithRequired { get; set; }
[Required]
public int IntWithRequired { get; set; }
[Range(1, 12)]
public int IntWithRange { get; set; }
[RegularExpression("^[3-6]?\\d{12,15}$")]
public string StringWithRegularExpression { get; set; }
}