gpt4 book ai didi

azure - 在开发/测试/生产环境中将 API 应用程序与 Swagger 结合使用

转载 作者:行者123 更新时间:2023-12-03 04:33:04 27 4
gpt4 key购买 nike

我正在将组合的 Azure 网站(包含 Controller 和 ApiController)迁移到分离的 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 App 中。这将在 Web 应用程序中生成具有我期望的命名的类。

问题是,我必须编辑生成的 MyAppApi.cs 文件的 _baseUri 属性以从 AppSetting 中提取,拥有不同的 web.config.dev、.test、.prod,然后进行 web.config 转换。我的意思是,这会起作用,但是每次我更改 API 应用程序的界面时,我都会重新生成...然后我会记得再次更改 _baseUri...而有人有时会忘记执行此操作,然后部署到生产环境。它真的非常非常脆弱。

那么...有人有更好的主意吗?

最佳答案

我不太清楚为什么您要创建三个不同的应用程序,每个环境一个?一个应用程序就可以,并为每个环境使用 web.config 转换。这是我处理所有应用程序的一般方法,并且运行良好。

有关如何应用 web.config 转换的信息可以找到 here这可能对您的情况有所帮助。

希望有帮助。

关于azure - 在开发/测试/生产环境中将 API 应用程序与 Swagger 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33138059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com