最近、残りのAPIについてもっと知るために自己紹介するためにいくつかのチュートリアルを読みました。しかし、私はあちこちでいくつかの疑問を持っており、誰かが私を助けてくれることを願っています.
HTML および REST の初心者向けガイドを読むと、次のように述べられています。
「リソースは名詞として考えるのが一番です。たとえば、次は RESTful ではありません:
1 /clients/add
これは、URL を使用してアクションを記述するためです。これは、RESTful と非 RESTful システムを区別するためのかなり基本的なポイントです。 "
そのため、ユーザーリソースがあり、それにアクセスして通常の挿入/更新/削除/取得を行うような場合に、私は疑問に思っていました
次のようになります。
www.example.com/users [get] <-- すべてのレコードを取得するには
www.example.com/users/1 [get] <-- ID が 1 のレコードを取得するには
www.example.com/users/1 [put ] <-- ID が 1
www.example.com/user/1 のレコードを更新するには [delete] <-- ID が 1
www.example.com/user のレコードを削除するには [post] <-- 新しいレコードを挿入するにはユーザーレコード
これは、要求を行うために 4 つの一般的な動詞を使い果たします。
ログインなどの機能や、一般的には他の種類のアクション コマンドが必要な場合はどうすればよいでしょうか? このような場合、URL はどのように形成され、ルーターはどのようにリダイレクトする必要がありますか?
編集:
さまざまなコメントと回答を見た後。それらからの私の意見は、最終的な解決策は「可能な限り残りの原則を使用し、そうでない場合は関数でクエリ文字列メソッドを使用する」に沿ったどこかになるということです。
しかし、私は実装のわずかな変形 (安らかな実装ではなく、同様の概念に従う) を考えており、このように機能する可能性があるかどうか疑問に思っていました。皆さんがこれについて私にアドバイスしてくれることを願っています。
私が実装する必要があるのと同じ認証/ログイン機能を使用すると、代わりにこれに沿ったものになる可能性があります:
www.example.com/users [get] <-- すべてのレコードを取得するには
www.example.com/users/1 [get] <-- ID が 1 のレコードを取得するには
www.example.com/users/1 [put ] <-- ID が 1
www.example.com/user/1 のレコードを更新するには [delete] <-- ID が 1
www.example.com/user のレコードを削除するには [post] <-- 新しいレコードを挿入するにはユーザーレコード
いつものように、アクションを実行する必要がある場合は、次のようになります。
[controller]/[action] --- user/authenticate [post] --- ログインする
[controller]/[id]/[action] --- user/1/authenticate [put] --- ログアウトする
これは機能しますか?私が直面する予見された問題はありますか?また、このような同様の実装は既にありますか? よろしければアドバイスお願いします!