在我用 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
。
我的问题是如何解决生成问题?
最佳答案
OpenApi 本身并不支持泛型,但您可以使用 SchemaId
方法自定义生成的名称,例如
c.SchemaId(t => t.FullName.Contains('`')
? t.FullName.Substring(0, t.FullName.IndexOf('`')) + "OfT"
: t.FullName);
以上内容实际上来自official documentation ,请参阅“修改生成的架构”。
关于c# - 如何从 swagger.json 中删除反引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62529901/