我已經導入了我的swagger模式,並且管理服務已經構建了我的API的所有文檔。我現在做了更改並重新部署了更改。我是否已將API從API管理中移除並重新導入,或者是否有「更新」現有API的方法?Azure API管理 - 更新Swagger模式
回答
好吧,我會盡我的責任給人類,並告訴你真正的方式來做到這一點。我的意思是,讓我們面對現實世界中的任何人都不會繼續點擊門戶來刷新其API的更改。每個人都希望自動執行這個煩人的手動任務。
所以我寫了這個我們目前在生產中使用的Powershell腳本。這會讓你確定。
前提條件:您需要服務主體才能夠自動登錄。 I used this guide to do that.
param(
[String]$pass,
[String]$swaggerUrl,
[String]$apiId,
[String]$apiName,
[String]$apiServiceUrl
)
Try
{
$azureAccountName = "[YOUR AZURE AD APPLICATION ID FOR THE SERVICE PRINCIPAL]"
$azurePassword = ConvertTo-SecureString $pass -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAccountName, $azurePassword)
Add-AzureRmAccount -Credential $psCred -TenantId "[YOUR AZURE TENANT ID]" -ServicePrincipal
$azcontext = New-AzureRmApiManagementContext -ResourceGroupName "[YOUR RESOURCE GROUP NAME]" -ServiceName "[THE NAME OF YOUR API MANAGEMENT INSTANCE]"
Import-AzureRmApiManagementApi -Context $azcontext -SpecificationFormat "Swagger" -SpecificationUrl $swaggerUrl -ApiId $apiId
Set-AzureRmApiManagementApi -Context $azcontext -ApiId $apiId -ServiceUrl $apiServiceUrl -Protocols @("https") -Name $apiName
}
Catch
{
Write-Host "FAILURE! An error occurred!!! Aborting script..."
exit
}
很明顯,您需要替換上面的括號內的字符串。該參數的說明:
「通行證」:您的服務主體的密碼
「swaggerUrl」:在您的應用程序的招搖JSON文件的路徑
「apiId」:從您的API管理實例這個值,它會在門戶網站的儀表盤顯示,如果你檢查現有的API
「apiName」:無論你需要將其命名
「apiServiceUrl」:你的API的Azure的應用服務URL(或其它地方ÿ我們的API是)
沒關係,事實證明你只是告訴導入它的一個現有的API,它會更新。我擔心我最終會收到一條錯誤消息,說明'操作已經存在'。
如果您經常更新您的API,例如持續部署您的API,有什麼方法可以自動執行此操作? – starmandeluxe
好問題,我確信有一種方法可以通過Azure API或CLI或PowerShell來完成,但我從來沒有走過這條路。 –
我肯定會欣賞一個PowerShell的界面,但我沒有看到任何檢查文檔後,但我沒有看太多。這真的很需要。 – starmandeluxe
- 1. 更新Azure API管理配置
- 2. 服務堆棧Swagger 2.0和Azure Api管理導入
- 3. Azure API管理響應404
- 4. Azure服務管理api更改配置
- 5. Azure api管理SOAP-To-REST
- 6. 通過Azure API管理流式傳輸
- 7. 管理中的Django多模式更新?
- 8. Azure API管理密鑰
- 9. Azure資源管理器模板語言的最新模式?
- 10. Azure API管理中的模型架構支持
- 11. Azure資源管理器 - 更新標籤
- 12. Azure API管理和HMAC
- 13. Azure API管理至VNet
- 14. Azure API管理服務API創建
- 15. Azure API管理REST API用戶
- 16. Azure API管理:Oauth2與後端API
- 17. 使用Azure API管理創建API
- 18. Azure API管理訂閱到期
- 19. API管理器:在Swagger 2.0定義中設置API圖標?
- 20. WSO2 API管理器2.0.0:Swagger模型顯示HTML源代替預期的模型
- 21. Azure Cosmos數據庫更新模式
- 22. 在Azure Api管理中保護WebApi
- 23. 使用Azure REST API的管理證書
- 24. Azure管理URL
- 25. 如何將IgnoreAPI合併到Azure API管理中?
- 26. Azure API管理返回一個InternalServerError,同時PUT'Sawagger定義
- 27. 是否可以通過ARM模板將API導入到Azure API管理中?
- 28. 管理SQL Azure數據庫
- 29. Azure管理API產生403錯誤
- 30. Azure管理API中的驗證問題
我改變了我接受的答案給你:) –