使用生成的服务器存根创建 .NET Web API 的最佳做法



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

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

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

您有一个选项是自定义模板。

  1. 克隆 swagger-codegen 存储库。
  2. 假设您使用的是代码生成工具的最新稳定 v2 版本,那么 master 分支就可以了。否则,请检查您正在使用的工具版本的标记。
  3. 在 Windows 资源管理器中,打开swagger-codegenmodulesswagger-codegensrcmainresources\ 并复制aspnetcore目录。将其粘贴到您的客户源代码存储库中。
  4. 下次运行代码生成工具时,请提供-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中,另一个在aspnetcore2.1中。在研究源代码时,我看到 2.1 文件夹用于2.0 以外的任何版本的 ASP.NET Core。我自己是这个工具的新手,还没有完全弄清楚如何利用它;该实用程序生成的源代码不会为我构建开箱即用。它不会生成安全类,但会生成尝试使用这些安全类的代码。因此,我不得不注释掉模板中的安全代码。

最新更新