私はイベント管理システムを構築しています。スキーマについては後述します。 APIはこれらの関係を理解し、要求結果の関連リソースへのリンクを返します。例えば、私はRESTについて読んだとHATEOASが、これはそれを行うには「正しい」方法であることを示唆しているものの大部分 REST - 関係を拡張する
GET /Events/1
"links": {
"Venue": "/Venues/1",
"Tickets": "/Tickets?event_id=1",
"Teams": "/Teams?event_id=1",
"Registrations": "/Registrations?event_id=1"
}
は、しかし、それは非常に非効率的です。たとえば、イベントに参加しているユーザーやチームのレポートを生成する場合は、多くのリクエストが必要です。これは、DBに対して単一の結合クエリを実行するのではなく、複数の選択クエリを実行する場合に似ています。だから私の質問は、私は関係を拡大し、リソース要求内の関連リソースを埋め込む必要がありますか?これはまた、上記のリクエストが多くのデータを返すという問題を引き起こします。答えは、関係のリンクに固執し、適切なキャッシングを設定することです。それにかかわらず、私はあなたの意見を歓迎します。
Schema
events
hasMany registrations
hasMany tickets
hasMany teams
team
belongsTo event
ticket
belongsTo event
hasMany registrations
user
hasMany registrations
registrations
belongsTo event
belongsTo ticket
belongsTo user
belongsTo team
ありがとうございます。オンラインで読んだことがあり、この用語やコンセプトに遭遇したことのないガイド/チュートリアルがいくつあるかは分かりません。 – newb1123
この用語について何も見つかりませんでした。:S Btw。 Tickets、Teams、Registrationsは文字列の代わりに単一のurlプロパティを持つオブジェクトでなければなりません。そのような方法でクライアントを処理する方が簡単です... – inf3rno
RESTFulの料理本から得ました。これは、基本的なコンテンツネゴシエーションや何千もの表現を使用せずに、「表現」を微調整する基本的な別の方法です。基本的には、必要な表現の仕様を定義することができます。 http://www.amazon.co.uk/RESTful-Services-Cookbook-Subbu-Allamaraju/dp/0596801688/ref=sr_1_1?ie=UTF8&qid=1378368152&sr=8-1&keywords=rest+cookbook – James