簡體   English   中英

RESTful API版本控制

[英]RESTful API Versioning

我是RESTful API的新手,目前正在開發我的第一個移動應用程序。 我對API版本以及如何管理/解決它們有疑問。

目前,我的API“版本”是我的API類所在的名為v<version_name>的目錄。 在該目錄中,我有另一個名為include目錄中的API和REST客戶端所需的資源。 因此,結構如下: example.com/api/v0.2/method_name/並在.htaccess ,我確保將遵循API版本的所有內容(硬編碼在.htaccess文件中)保存在查詢字符串中參數)。 我不確定這是否適用於實時應用程序,因為它也需要手動更改客戶端的URL端點。 所以我的問題是:

  1. 這是API版本控制的正確方法嗎?
  2. 如果是這樣並且我保留了,我該如何處理過時的URL。 假設例如該應用程序處於活動狀態,並且我將API更新為v0.3但安裝了該應用程序的客戶端將訪問v0.2並返回404響應代碼?
  3. 有沒有更優雅的解決方案? 一定是。

編輯:可以說,在api文件夾本身之外的根include文件夾中有一些資源。

編輯2:我的API的目標是供移動應用程序使用,並且不公開使用。

雖然我認為這些問題主要是基於觀點的,但我還是可以...

  1. 我認為這是一種有效的方法,而且我已經看到其他人使用它,包括Microsoft。

  2. 當有必要更新API時,您可以返回404並說明新API位於新地址。 但是,僅退出API版本通常是個壞主意; 您至少必須給客戶開發人員足夠的時間來切換到新的API,然后再淘汰舊的API。

  3. 更為優雅的解決方案是將API保留在一個地址,並根據需要進行更新,然后將其添加到該地址,而不是盡可能地替換。 盡可能長時間地支持過時的功能,並就某些方法何時不再有效與客戶開發人員進行公開交流。

我的看法是,隨便做什么吧...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM