【问题标题】:How to remove back quote from swagger.json如何从 swagger.json 中删除反引号
【发布时间】:2020-10-13 05:28:23
【问题描述】:

在我用 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”(有一个单反引号字符,我加倍以保持漂亮的帖子从atting),这对于生成 TypeScript api 客户端是有问题的。对于生成前端客户端,我使用open-api-generator

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

【问题讨论】:

    标签: c# .net swagger openapi swashbuckle


    【解决方案1】:

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

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

    以上内容其实来自official documentation,见《修改生成的Schemas》。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 2020-04-12
      • 2020-06-21
      • 2023-03-19
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多