在我用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
。
我的问题是如何解决发电问题?
答案 0 :(得分:2)
OpenApi本身不支持泛型,但是您可以使用SchemaId
方法自定义生成的名称,例如
c.SchemaId(t => t.FullName.Contains('`')
? t.FullName.Substring(0, t.FullName.IndexOf('`')) + "OfT"
: t.FullName);
以上内容实际上来自official documentation,请参阅“修改生成的架构”。