我正在将一个组合的 Azure 网站(带有控制器和 ApiControllers)迁移到一个拆分的 Web 应用程序和 API 应用程序。我们称之为 MyApp。
我创建了 MyAppDevApi、MyAppTestApi 和 MyAppProductionApi API 应用程序(在不同的应用程序服务中)来托管这三个环境,期望将代码从一个环境提升到另一个环境。
到目前为止,我只部署到 MyAppDevApi,因为我才刚刚开始。
当我Add/Azure API App Client
对纯 UI 项目开始引用 API 应用程序并将其指向 MyAppDevApi 时,它使用 AutoRest 在我的代码中创建类。这些类现在都具有名称 MyAppDevApi,而不仅仅是 MyAppApi,这是我部署到每个环境的代码的实际名称空间。显然,我无法检查...我如何通过测试和生产来推广它?
Swagger JSON 中没有任何内容引用此名称,因此它必须在 AutoRest 端(我认为)。
有没有人想出策略或解决方法来处理 API 应用程序的这种多环境推广问题?
编辑
到目前为止,我想出的最好的方法是将 Swagger 从 API 应用程序下载到本地文件(同样,它只有原始代码的命名空间,而不是 API 应用程序的名称),然后将其导入 Web 应用程序。这将在 Web 应用程序中生成具有我期望的命名的类。
问题是我必须编辑生成的 MyAppApi.cs 文件的 _baseUri 属性以从 AppSetting 中提取,具有不同的 web.config.dev、.test、.prod,然后进行 web.config 转换。我的意思是,这会起作用,但是每次我更改 API 应用程序的界面时,我都会重新生成……然后我会记得再次更改 _baseUri……而且有人,有时会忘记执行此操作,然后部署到生产环境。它真的,真的很脆弱。
所以...有人有更好的主意吗?