2017-03-09 11 views
0

我們正在設計一個供我們的應用程序使用的API,並且API應該返回下一個更高的版本,給出查詢字符串中提供的版本請求。事情是這樣的:通過API響應404錯誤代碼以獲取有效請求,但沒有找到數據

GET /update-available?AppVersion=3.2.3&someotherinfo=ABCD1234 

的問題是,應該是什麼返回代碼,如果沒有可用的更新給一組特定的查詢參數的。 (例如,如果應用程序已經有最新版本)。

根據我有限的知識和經驗,我們應該發送一個200空的答覆或消息說'找不到更新'。

但是我的一位同事表示使用404更好,因爲'update-available'是一個問題,答覆是'not-found'和相應的響應代碼。

任何幫助決定什麼是更合適的方法?

回答

1

最好響應狀態代碼是204 No Content,這意味着:「服務器成功處理了請求,並且沒有返回任何內容」(Wiki

狀態碼200也是合適的,因爲它是標準的響應爲成功的HTTP請求 - /update-available是一個資源,一個服務,處理相當成功。服務結果是「無更新」,但服務本身存在,並且工作正常。

狀態碼404不合適。原因包括:

  1. 4xx狀態碼錶示「客戶端錯誤」。在這種情況下,客戶端沒有任何問題。
  2. 404表示「請求的資源找不到,但可能在將來可用」(Wiki)。但是,請求的資源(更新是否可用)是可用的。
  3. 如果404用於此「無可用更新」情況,當/update-available路由本身不可用(例如,從服務器配置中刪除)時應使用哪個狀態碼。
相關問題