2016-12-14 14 views
1

這是我的情況:
有一個API服務,它會在一個賽季發佈一個新版本。
我爲每個版本創建一個Web應用程序。因此,有下默認網站,看起來像Web應用程序的列表:如何構建具有單個url但多個版本的應用程序的API服務?

  • API_2016S1
  • API_2016S2
  • API_2016S3
  • ...

對於客戶來說,API的網址應爲同樣的,甚至它的版本已經改變。 版本信息不會成爲API網址的一部分。
客戶端和API版本之間的關係存儲在數據庫中。

所以客戶端的請求的流程可能是這樣的:

  • 客戶
  • 發送請求(在頭端ID和會話的Cookie)
  • 一個門戶網站的應用程序,這樣做:
    • 身份驗證
    • 確定哪個API應用程序應該是
    • 發送客戶端的特定的API的應用程序請求
  • 特定API應用程序做:
    • 接收請求(不管認證)
    • 過程請求
    • 響應於門戶應用
  • 的門戶應用程序對客戶端的響應

因此,對於即將推出的新版API服務,我只需要爲它們創建Web應用程序並在數據庫中設置關係。

現在我試圖自己構建門戶應用程序。
我的問題是:有沒有類似的結構或機制可以處理這種情況?或者對我有任何想法。謝謝!

回答

1

您要查找的內容稱爲API網關或API中間件。所有客戶端都不會將請求發送到實際的API,而是將這些請求發送給此中間件,並將其作爲代理並將請求轉發給正確的API。 有一些開源解決方案,如KONG,Tyk(和其他),您可以自行部署和管理,或者您可以將AWS API Gateway視爲託管服務。

+0

感謝您的建議,我現在正在尋找API網關。 – Ray

相關問題