指定SWAGER"试用的示例请求(&Q;) [英] Specify example requests for swagger's "Try it out"

查看:34
本文介绍了指定SWAGER"试用的示例请求(&Q;)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法指定swagger的示例请求?甚至可能有多个?

Try it out按钮仅显示如下的泛型值:

{
    "firstName": "string",
    "lastName": "string"
}

用于

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

当您必须首先编辑所有值时,使用大型对象会变得非常困难。我知道我可以使用Postman,我也是,但是能够使用Swagger创建多个好看且有用的示例将是非常好的。

推荐答案

在.Net5中,您可以将架构筛选器添加到Startup.cs中的swagger

public override void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        c.SchemaFilter<ExampleSchemaFilter>();
    });
}

在ExampleSchemaFilter.cs中,您只需为特定类定义一个OpenApiObject:

using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;

public class ExampleSchemaFilter : ISchemaFilter
{
    public void Apply(OpenApiSchema schema, SchemaFilterContext context)
    {
        if (context.Type == typeof(User))
        {
            schema.Example = new OpenApiObject()
            {
                ["firstName"] = new OpenApiString("John"),
                ["lastName"] = new OpenApiString("Doe"),
            };
        }
    }
}

这篇关于指定SWAGER&QUOT;试用的示例请求(&Q;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆