2017-01-20 57 views
3

比方說我我SemVer API的版本是2.0.0是一個更具體的HTTP代碼「Semver重大變化」?

假設我有一個端點/foo,自己目前是錯誤總是返回{200, "some message"}{500, "some message"}

我修復bug,因此我現在發現錯誤的請求,現在我要返回{200, "some message"}{400, "some message"}{500, "some message"}

這是否被視爲API SemVer中的突變?用戶可能並不期待400,所以我可以看到3.0.0的情況,但是我也可以看到,這應該是一個不良的請求400,因爲在某種意義上,「HTTP」是我的API,因此是修補程序修復爲2.0.1,所以我被撕裂。

+0

在這個hypo中,你會一直返回有用的消息以及你的'500'響應,還是隻是一個普通的消息? –

+0

沒有我的500是一個通用的消息,在錯誤的請求的情況下是錯誤的 – Tommy

回答

0

我認爲在回答這個問題之前,你必須在哲學上確定責任所在。也就是說,如果客戶端代碼無法處理新的(正確的)狀態碼,那麼這是否會導致您的更改或客戶端代碼寫得不好?如果您之前一直在發送一些有用的信息以及您的回覆,那麼期望客戶端代碼可能依賴於它會是合理的。

對我來說,這聽起來像一個minor變化非常清晰:

次版本[是]當你在一個向後兼容的方式[添加功能。 。 。]

實際的內部服務器錯誤仍然正確發送,並且成功的結果仍然正確發送;您所做的只是增加了客戶從錯誤出現位置確定的能力。

編輯:所以不是2.0.13.0.0,我相信這將是2.1.0

相關問題