2017-01-20 4 views
3

は私のSemVerのAPIの私のバージョンを言うことができます私は今、その誤っいつも私は今、悪い要求を検出するように私はバグを修正{200, "some message"}{500, "some message"}は、より具体的なHTTPコード「セバス・ブレーク・チェンジ」ですか?

を返すエンドポイント/fooを持っている2.0.0

としています今戻ってきます{200, "some message"}または{400, "some message"}または{500, "some message"}

これはSemVerでの変更を中断していますか?ユーザーは400を期待していないかもしれないので、私は3.0.0のケースを見ることができます。しかし、ある意味では "HTTP"が私のAPIなので、これはBAD REQUESTの400であったはずです。パッチが2.0.1に修正されているので、私は破れています。

+0

このハイポでは、あなたの役に立つメッセージをあなたの '500'レスポンスと共に返すのでしょうか、それとも一般的なメッセージですか? –

+0

私の500は、悪い要求の場合に間違った一般的なメッセージでした – Tommy

答えて

0

私はこれに答える前に、責任があるところで哲学的に判断する必要があると思います。つまり、クライアントコードが新しい(正しい)ステータスコードを処理できない場合は、変更の結果またはクライアントコードの記述が不適切であるという結果をかなり破棄するかどうかです。あなたが以前にあなたの500レスポンスとともにいくつかの有益な情報を送ってきたのであれば、クライアントコードがそれに頼っているかもしれないと期待するのは妥当でしょう。私に

、それはminor変更の定義そのもののように聞こえる:

MINORバージョンあなたは下位互換性のある方法の[に機能を追加するときに[あります]。 。 。]

実際の内部サーバーエラーは依然として正しく送信され、正常な結果は引き続き適切に送信されます。あなたがしたことは、クライアントがどこでエラーが発生したかを判断する機能を追加するだけです。

編集:だからではなく、2.0.1または3.0.0の、私はこれは2.1.0だろうと信じています。

関連する問題