gpt4 book ai didi

swagger - 如何在 Swagger 中显示查询参数的 C# 验证属性

转载 作者:行者123 更新时间:2023-12-03 09:00:20 26 4
gpt4 key购买 nike

我正在将 Swagger 与 ASP.Net Core 2.1 Web API 项目结合使用。下面是一个 Controller 操作方法示例:

[HttpGet]
public string GetString([Required, MaxLength(20)] string name) =>
$"Hi there, {name}.";

这是我在 Swagger 文档中得到的内容。正如您所看到的,Swagger 显示了 Required 属性,但没有显示 MaxLength 属性:

enter image description here

如果我在作为 POST 操作方法参数的 DTO 类上使用 RequiredMaxLength 属性,则 Swagger 会同时显示它们:

enter image description here

如何让 Swagger 显示查询参数的 MaxLength(和其他)验证属性?

注意:我尝试将 string name 参数替换为一个具有名为 name 的字符串属性的类 - Swagger 生成完全相同的文档。

最佳答案

在 .NET Core 中,您可以使用 ShowCommonExtensions = true 以及给定的序列(ConfigObject 在顶部)。

public static IApplicationBuilder UseR6SwaggerDocumentationUI(
this IApplicationBuilder app)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
//Allow to add addition attribute info on doc. like [MaxLength(50)]
c.ConfigObject = new ConfigObject
{
ShowCommonExtensions = true
};

c.SwaggerEndpoint("/swagger/v1/swagger.json", "Asptricks.net API");
c.RoutePrefix = "api_documentation/index";
c.InjectStylesheet("/swagger-ui/custom.css");
c.InjectJavascript("/swagger-ui/custom.js");
c.SupportedSubmitMethods( new[] { SubmitMethod.Patch });

//Collapse model near example.
c.DefaultModelExpandDepth(0);

//Remove separate model definition.
c.DefaultModelsExpandDepth(-1);
});

return app;
}

关于swagger - 如何在 Swagger 中显示查询参数的 C# 验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51094323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com