如何从swagger.json删除反引号

时间:2020-06-23 07:50:49

标签: c# .net swagger openapi swashbuckle

在我用ASPNET Core 3.1编写的Web应用程序中,使用Swashbuckle.AspNetCore(5.2)生成OpenApi。我已经启用了通过

生成派生类
GeneratePolymorphicSchemas()

在swagger.json中,我得到了带有反引号(`)的类。所以我的一堂课

public abstract class CommandResult
{
    public abstract IsSuccess {get;}
}

public class SuccessCommandResult
{
    public override IsSuccess => true;
}

public class SuccessCommandResult<TData> : SuccessCommand
{
    public TData Data {get;set;}
}

对于这些类中的最后一个,我将其名称命名为'SuccessCommandResult``1''(有单反引号字符,我将其加倍以保持其漂亮的样式),这对于生成TypeScript api客户端是有问题的。对于生成前端客户端,我使用open-api-generator

我的问题是如何解决发电问题?

1 个答案:

答案 0 :(得分:2)

OpenApi本身不支持泛型,但是您可以使用SchemaId方法自定义生成的名称,例如

c.SchemaId(t => t.FullName.Contains('`') 
    ? t.FullName.Substring(0, t.FullName.IndexOf('`')) + "OfT" 
    : t.FullName);

以上内容实际上来自official documentation,请参阅“修改生成的架构”。