2016-07-14 3 views
2

は、私たちがこのようなエンドポイントを持っていると言う:有効なリクエストデータの適切なREST応答コードはまだありません(まだ)。

/user/[email protected]/notification

それは、サーバによって生成された単一の通知オブジェクトを返します。 あなたはこのURLを要求すると、3つの状況が発生します

  1. をユーザーが存在しない、この場合には、私は404

  2. を返すユーザーが存在する、と通知が存在しています。この場合、私は本体に通知付き200を返します

  3. ユーザーは存在し、通知はありません。この場合、404 NOT FOUNDまたは204 NO CONTENTのいずれかを返すことができます。

私は204に向かっています。

404は、このエンドポイントが実際に有効であるという問題があることを示しています。オブジェクトは現在使用できませんが、2秒後に再度要求したときに使用できる可能性があります。 また、あなたはオブジェクトを作成する責任者ではないため、状況を助けることはできません。

+1

右のように聞こえます。 –

+1

技術的には、「204」で応答すると完全に有効です。しかし、私は応答ペイロードに空の配列を持つ '200'のために行くだろう。リクエストが成功したが、利用可能な通知がない、つまり空の配列であることを意味します。 –

+0

@CássioMazzochiMolinこのエンドポイントは、配列ではなく特異なオブジェクトを返します。空のオブジェクトを返しますか? – StijnSpijker

答えて

1

204 No Contentの代わりに200 OKと回答する必要があると私は主張します。ここで

204ためspecificationあり、それは言う:

204応答は、サーバが ユーザーエージェントにはないことを暗示しながら、アクションは に成功、ターゲットリソースに適用されていることを示すことができます現在の "文書 ビュー"(存在する場合)から移動する必要があります。

これは、リソースが変更されていないこと、または手元にあるプロセスがユーザーを悩ませることが重要でないことを意味します。 ではないは、リソースが "空"である(少なくともの応答が空である)ことを意味します(少なくとも明示的ではありません)。

404で応答すると、リソースが存在するため客観的に間違っています。

関連する問題