0

"car"エンティティを作成する方法があり、その一部として "manufacturerID"が必要ですが製造元が存在しない場合は、どのステータスコードを返さなければなりませんか?要求は、要求に関連何かが存在しないことを示すために存在しない項目に関連する検証失敗のためのHttpステータスコード

または404無効であったことを示すために

400?

エンドポイントが存在しないことを意味する可能性があるため、私は404に対して躊躇しています。これは、存在しないパラメータの1つです。

存在しないものの説明付き404が最も適切でしょうか?または、より曖昧な400?

答えて

0

400これは、存在しない製造元が含まれていないとリクエストが不正であるためです。

+0

要求が実行されたときに製造元が存在し、サーバーがそれをチェックするまでに製造元が削除された場合は、それでも適用されますか? (私が推測するシナリオを区別することはできませんが、おそらくこの時点ではヘアを分割することになります)。 – Steviebob

+0

要求が形成されてからサーバーがそれを処理するまでの間に競合状態が存在する場合、それでもフラグが立てられるべきです。私はサーバーが最初にあったかどうかわからないので、世界はまだ400であると言うでしょう。 – hardillb

-1

409(https://greenbytes.de/tech/webdav/rfc7231.html#status.409) - 別のリソースが作成されると、要求は有効になります。

+0

409は編集の競合を意味します。この場合は適用されません – hardillb

+0

「編集」という用語は表示されませんステータスコード409の定義にあります。 –

+0

ありがとうございます。 w3.org(https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10)を簡単に見てから、私はこの行が特に適切であることを発見しました。「このコードは、ユーザーが競合を解決して要求を再送信できる可能性があります。私のシナリオでは、エンドユーザーは自分自身で問題を解決することはできません(Webページ上のajaxリクエストです)。この場合、おそらく409は正しいものではないと思います(しかし、もっと露出されたAPIがあると思います)。このことを踏まえ、私の場合は400がより適切かもしれないと思います。 – Steviebob

関連する問題