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