0

b) 生成 .NET C# 服务器存根后,文档对如何使用它不是很详细:

您需要自己实现逻辑来处理 API 需要做的任何工作。实施准备就绪后,您可以在本地或服务器上部署 API。请参阅下载存档中的 README.md 文件以开始使用。

有没有关于如何使用代码的教程?我想使用继承来避免生成代码的代码更改。但是文档只讨论了忽略一些生成的文件。大摇大摆的支持告诉我只需“迁移”每次更改时的更改。有什么可能,但我希望能够保持生成的文件不变。我在这里错了吗,这没有特别的需要吗?我想在持续集成环境中使用服务器存根。

4

1 回答 1

0

您拥有的一种选择是自定义模板。

  1. 克隆swagger-codegen 存储库
  2. 假设你使用的是最新的稳定版本的代码生成工具,那么 master 分支就可以了。否则,请检查您正在使用的工具版本的标签。
  3. 在 Windows 资源管理器中,打开swagger-codegen\modules\swagger-codegen\src\main\resources\ 并复制aspnetcore目录。将其粘贴到您的客户源代码存储库中。
  4. 下次运行 codegen 工具时,提供-t参数:

    java -jar swagger-codegen-cli.jar generate
        -i <your Open API spec URL/file> 
        -l aspnetcore
        -o <outputdir> 
        -t <relative path to your>\aspnetcore
        ... other args as needed
    

现在您可以使用自定义代码修改这些模板。例如,您可以拥有一个外部库,其中包含一个提供一些通用业务逻辑的新基控制器类。然后您可以修改controller.mustache文件以引用您的基类。只是众多例子之一。将您的自定义模板添加到源代码控制中以进行持续集成。

警告:有一个controller.mustache文件直接在aspnetcore和另一个在aspnetcore\2.1. 在研究源代码时,我发现 2.1 文件夹用于2.0 以外的任何 ASP.NET Core 版本。我自己是这个工具的新手,还没有完全弄清楚如何利用它;该实用程序生成的源代码不会为我开箱即用地构建。它不会生成安全类,但会生成尝试使用这些安全类的代码。因此我不得不注释掉模板中的安全代码。

于 2019-07-14T15:38:36.380 回答