当前位置: 首页 > 知识库问答 >
问题:

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

贺乐意
2023-03-14

我正在用ASP。Net核心2.1 Web API项目。下面是一个示例控制器操作方法:

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

这是我在 Swagger 文档中得到的内容。如您所见,Swagger 显示“必需”属性,但不显示“最大长度”属性:

如果我在一个DTO类上使用< code>Required和< code>MaxLength属性,这是一个POST操作方法的参数,那么Swagger会显示这两个属性:

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

注意:我试图用一个类替换<code>字符串名称

共有1个答案

姜俊民
2023-03-14

在 .NET Core 中,可以使用具有给定顺序的“显示共同扩展 = true”(“配置对象”位于顶部)。

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;
}
 类似资料:
  • 我有以下Azure函数,它是HTTP触发的。我已经使用这里的链接为我的endpoint设置了Swagger。下面的API需要一组查询字符串参数,即“name”、“email”、“phone”,因此它可以针对目标对象进行一些搜索。目前,函数的主体当然还没有实现,这对这个问题来说并不重要。 我的问题是:如何在swagger UI中显示查询字符串参数? 函数:

  • Swagger UI 不显示请求参数的验证信息。我想显示参数的最小值,最大值,格式,模式(正则表达式)。有谁知道我在Swagger UI上表达参数验证信息的方式吗?

  • 我用swagger,OpenAPI版本3为web API编写文档。我使用swagger php包从注释生成文档化的json。我有一个服务,在那里我发送post请求以添加新用户,请求的主体是json(因此参数作为json对象发送)。它有两个参数-电子邮件和密码。请求正文看起来像 这是大摇大摆的 YAML 这里是包含请求参数的参考模式(< code >/components/schemas/sign

  • 在我的Zend应用程序中,我正在为移动应用程序编写一个小API。为了方便移动开发者,我使用了Swagger。到目前为止,除了一个GET请求外,一切正常。 当我呼叫/user/messages/{sessionToken}时?numMessages={numMessages} 有人知道我的错误吗? 欢迎任何帮助。 诚挚的问候 罗特曼 更新:按照建议,我将两个参数类型都更改为“查询”并更改了路径: 但

  • 两种情况下生成的 XML 文件相同 知道为什么在生成文档时会有这种差异吗?我在搜索此内容时找不到任何相关内容。 如何(强制)将所有数据模型包含在模式部分中?非常感谢任何指针或资源。 谢谢你