And*_*rew 2 swagger asp.net-core-webapi
我正在将 Swagger 与 ASP.Net Core 2.1 Web API 项目结合使用。下面是一个控制器操作方法示例:
[HttpGet]
public string GetString([Required, MaxLength(20)] string name) =>
$"Hi there, {name}.";
Run Code Online (Sandbox Code Playgroud)
这是我在 Swagger 文档中得到的内容。正如您所看到的,Swagger 显示了Required属性,但没有显示MaxLength属性:
如果我在作为 POST 操作方法参数的 DTO 类上使用Required和属性,则 Swagger 会同时显示它们:MaxLength
如何让 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3925 次 |
| 最近记录: |