おいしい使用は、投稿の代わりに作成のリクエストを取得しますか?
-
25-10-2019 - |
質問
私は見ています おいしいAPI そして、新しいブックマークを作成するための操作が次のとおりです。
https://api.del.icio.us/v1/posts/add?&url={URL}&description={description}
GETリクエストを使用してサーバー側のデータベースエントリを作成しているようです。他の場所で読んだことは、POSTリクエストでのみGETリクエストを使用する必要がありません。
私は今自分のAPIを書いていますが、ユーザーがURLから直接APIと対話できるようにするのは素晴らしいことだと思います。ただし、CRUD操作が取得されない限り、これを行うことはできません。
それで、Deliciousは本当にCrud Operationsを獲得していますか?私が自分のAPIで同じことをすべきではない重要な理由はありますか、それとも偶発的な呼び出しを防ぐためにCRUDに投稿が義務付けられていますか?
解決
偶発的な呼び出しはその一部です。これは、HTTP Specが「等程度」の方法について語るときに意味するものです。しかし、あなたがしているのは、何回を手に入れてもURLが追加されている限り、実際にはDealiousがやっていることは実際には等程度であると主張することができます。しかし、もっと重要なのは、それがそうだということです 安全:
The important distinction here is that the user
did not request the side-effects, so therefore
cannot be held accountable for them.
インターフェイスデザインの観点から、あなた 欲しいです ユーザーエージェントは、取得よりもポストおよび配置および削除を困難にするか、少なくとも明らかに異なるため、ユーザーはその違いに頼って、アクションがリソース状態に変化を引き起こす可能性があるため、ヒントを示すことができます。 それは それらの変更に責任があります。特に、特にその説明責任を曖昧にしても、特にその説明責任を曖昧にしても、変更を加えて プリフェッチャー 広く展開されています。
他のヒント
それは、あなたが物事を変えるために得られる残りの原則に従うかどうかによって異なります。したがって、ほとんどの人は、変更のために休憩所を使用して言っています。
ただし、GETとPOSTには違いがあります。 RFCによると、GETリクエストには常にフォローアップ応答があります。また、投稿を使用する場合は、リダイレクトアフターポストパターンに従う必要があります。
別の制限は、URLのサイズが制限されている可能性があることです。したがって、入力データが十分に短い限り、GETは機能します。したがって、おいしいAPIにはバグがあります。 GETパラメーターを介して可能なすべてのURLを追加することはできません。