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

时间:2019-06-18 06:23:43

标签: asp.net-core swagger-codegen openapi-generator

b)生成.NET C#服务器存根后,documentation的使用方式并不十分冗长:

  

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

是否有有关如何使用代码的教程?我想使用继承来避免所生成代码的代码更改。但是documentation谈论的只是忽略一些生成的文件。慷慨的支持告诉我,只需在每次更改时“迁移”更改即可。可能的,但是我希望能够保持生成的文件不变。我在这里错了吗,对此没有特殊的需要吗?我想在持续集成环境中使用服务器存根。

1 个答案:

答案 0 :(得分:0)

您可以选择自定义模板。

  1. 克隆swagger-codegen repository
  2. 假设您使用的是代码生成工具的最新稳定v2版本,那么master分支就可以了。否则,请签出所用工具版本的标签。
  3. 在Windows资源管理器中,打开swagger-codegen\modules\swagger-codegen\src\main\resources \,然后复制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文件,而aspnetcore\2.1中有一个文件。在研究source code时,我发现2.1文件夹用于2.0.em以外的任何版本的ASP.NET Core。我本人还不熟悉该工具,还没有完全弄清楚如何利用它。该实用程序会生成开箱即用的源代码。它不会生成安全类,但是会生成尝试使用的代码。因此,我不得不注释掉模板中的安全代码。