c# - 如何从 swagger.json 中删除反引号

标签 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

我的问题是如何解决生成问题?

最佳答案

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/

相关文章:

c# - Powershell 访问可以工作,但 AzureCliCredential 失败并显示 "Principal X is not authorized"

c# - 无法从程序集 '...' 加载类型 'System.Web, ...'

c# - ActivityIndi​​cator 没有进入正确的位置

C# - XML - 压缩

django - 如何修复 Swagger 中的混合内容错误?

ruby-on-rails - Rails 请求规范 - 未定义方法 `body' for nil :NilClass (rswag)

swagger - 是否可以在 OpenAPI 3.0 的根级别指定默认请求/响应格式?

c# - Entity Framework 和 ASP.NET Identity

c# - 如何以最少的访问量(最有效)从位置FIFO中选择项目

c# - 如何从 EasyNetQ 通知 AngularJS 应用程序