2016-06-30 1 views
0

私のシステムでは、ユーザはエンドポイント/api/account/を使ってアカウントエンティティを作成できます。このエンドポイントを使用すると、かなりの数のプロパティを持つオブジェクトを追加/編集できます。ドロップダウンリストのオブジェクトのサブセットを返すREST API URL

UIでそれを作成するときに、使用するアカウントを指定する必要がある別のエンティティ(サービス)があります。

/api/account/エンドポイントごとにすべてのアカウントとそのデータを取得する必要はありません。追加情報が必要であるため、IDと名前が必要です。

私はむしろ、すべてのエンティティのための一般的なエンドポイントを作ると思います、私は返すようにフィールドかを指定クエリ文字列パラメータを受け入れることができるが、フィールドは常にので、すべてのエンドポイントのためにこれを行うにはしたくないと同じになります。

データの(一貫した)サブセットを返すためにどのようなRESTfulオプションがありますか?私は/api/relatable/{entity}のような何かをすることができますか?

おかげ

アレックス

答えて

0

あなたはとてもアカウントエンティティが最低限必要であるあなたのエンティティを分割して、他のすべてを持っているaccountDetails実体を持つことができます。これにより、エンティティを小さく保ち、すべてのデータのサブセットを作成する必要がなくなります。あなたのルートは/ api/accounts/{id}で基本アカウントを取得し、次に/ api/account/{id}/detailsを使用して残りのプロパティを取得することができます。データベースは1:1の関係になります。

また、OData $ select構文を使用することもできます。 specs hereを参照してください。私はそれがあまりにも多く公開されていると感じているので、OData自分自身から離れていますが、基本的なスキームについての知識があまりにも必要ですが、それに関するいくつかの良いことがあり、これはあなたの問題を解決するはずです。

関連する問題