6

重複の可能性:
RESTでのPUTとPOST

私はこれがたくさん議論されていることを知っています、そして私はそれをある程度理解していますが、私はそれを完全には理解していません。次の例に関連して誰かがこれに答えることができれば、理解しやすくなると思います。

新しいユーザーの作成-ユーザー名、パスワード、電子メールを送信するデータベースに新しいユーザーを追加します。PUTまたはPOST?

重複したユーザーを持ちたくないので、おそらくPUTだと思います。PUTは削除して置き換えるようなものです。ただし、ユーザーが2回追加されないようにするチェックがあるので、POSTを使用する必要がありますか?

ユーザーの更新-電子メールまたはパスワードを変更します。PUTまたはPOST?

URI api / update / my_usernameを使用して、本文を介して新しいメールを送信できるので、これをPUTにする必要がありますか?すべてをURIで送信することもできます(例:api / update / my_username / email / new_email @ email.com)

4

2 に答える 2

11

作成-POST、更新-PUT、削除-DELETE。

HTTP動詞の使用法をよりよく理解するには、RFChttps ://www.rfc-editor.org/rfc/rfc2616を参照してください。

また、PUTリクエストはエンティティを作成できますが、応答コードは200OKおよび204NoContentではなく201作成する必要があります。しかし、そのような振る舞いを許可/実装するかどうかはあなた次第です。

于 2012-07-19T10:25:11.240 に答える
2

重要なガイドは、操作がべき等であるかどうか、つまり、それを繰り返すとどうなるかということです。リクエストを1回、2回、または20回実行しても、全体的に同じことが発生する場合(ログ、最終変更時間、およびその他のフリッパーを無視)、べき等であり、PUTで​​ある必要があります。実行回数が重要な場合は、POSTを使用してください。

通常、ユーザーにIDを発行するため、作成はべき等ではないことがよくありますが、そのようにする必要はありません(たとえば、呼び出し元がIDを指定する場合)。データフィールドを現在の値に変更することは、実際には効果的な操作なしであることが多いため、更新はべき等であることがよくあります。

于 2012-07-19T10:38:37.990 に答える