我正在將組合的Azure網站(包括控制器和ApiController)遷移到拆分的Web應用程序和API應用程序。我們稱之爲MyApp。在開發/測試/生產環境中對Swagger使用API應用程序
我創建了MyAppDevApi,MyAppTestApi和MyAppProductionApi API應用程序(在不同的應用程序服務中)來託管這三種環境,期望將代碼從一種環境推廣到另一種環境。
到目前爲止,我只部署到MyAppDevApi,因爲我剛剛開始。
當我做Add/Azure API App Client
到我的UI專用項目來開始引用API應用程序,並將其指向MyAppDevApi時,它使用AutoRest在我的代碼中創建類。這些類現在都有名稱MyAppDevApi,而不僅僅是MyAppApi,它是我正在部署到每個環境的代碼的實際名稱空間。顯然,我無法檢查...我怎麼能通過測試和產品來推廣?
Swagger JSON中沒有提及此名稱的內容,所以它必須位於AutoRest端(我認爲)。
有沒有人想出一個策略或解決方法來處理這個多API環境的推廣問題?
編輯
到目前爲止,我想出了是從API應用程序下載揚鞭到本地文件(再次,只有從原代碼的命名空間,而不是最好的東西從API應用程序的名稱),然後將其導入Web應用程序。這將在Web應用程序中生成具有我期望的命名的類。
問題是,我必須編輯生成的MyAppApi.cs文件的_baseUri屬性以從AppSetting中拉出,具有不同的web.config.dev,.test,.prod,然後執行web.config轉換。我的意思是說,這將起作用,但每次我更改API應用程序的界面時,我都會重新生成...然後我會記得再次更改_baseUri ...以及某個人,有時會忘記做到這一點,然後部署到生產。這真的很脆弱。
所以......任何人有更好的主意?
對不起,如果這不清楚......我不創建三個不同的Visual Studio解決方案。我試圖將一個Visual Studio解決方案(包括一個Web應用程序和一個API應用程序)部署到三個不同的Azure應用程序服務實例 - Dev,Test和Prod - 並且來自AutoRest的命名使我失敗。 – Scott