私はアプリ用の Web サービスを作成することになっていますが、優れた実践を実践することで素晴らしい仕事ができると思いました。私が見つけたように、RESTを使用しています。しかし、それにはほとんど意味がないことが 1 つあります。
URI を使用して変数を渡すのはなぜですか?
前回のプロジェクトで行ったことは、POST のみを使用し、生の POST データ (JSON) として何でも渡すことでした。それはあまりRESTfulではありません。しかし、それにはいくつかの利点があります。クライアント側では非常に単純でした.URIとデータを引数として取り、それをラップして送信する一般的な関数がありました。
ここで、適切な REST を使用した場合、URI の一部としていくつかのデータを渡す必要があります (たとえば、ユーザー ID)。他のすべてのデータ (ユーザー名、電子メールなど) は、私たちが行ったように、生データとして移動する必要があると思います。つまり、ある時点でユーザー ID とその他のデータを分離する必要があります。それはそれほど悪くはありませんが、それでも - なぜですか?
EDIT より詳細な例を次に示します。
ユーザーデータにアクセス (GET) して更新 (POST) したいとします。/userの下でサービスにアクセスできる場合がありますが、RESTful サービスが行うことは、ユーザーの ID を URI ( /user/1234 ) の一部として受け入れることです。他のすべてのデータ (名前、電子メールなど) は、要求コンテンツ (おそらく JSON) に送られます。
私が提起したのは、ユーザー ID を URI に入れるのは無意味に思えるということです。ユーザーデータを更新したい場合は、とにかく追加データをコンテンツとして送信します。アクセスしたい場合は、同じ一般的な方法を使用して Web サービスを要求できます。
GET がブラウザーによってキャッシュされることは知っていますが、AJAX (Web) または HTTP クライアント ライブラリ (他のプラットフォーム) を使用する場合は、とにかく手動でキャッシュする必要があると思います。
スケーラビリティの観点から、いつでもサービスを追加できます。