指定された関連付けを持つレコードの外部レコードを取得して返します。
GET /:model/:id/:association
指定された関連付けが複数形(「コレクション」)の場合、このアクションは、辞書(プレーンなJavaScriptオブジェクト)のJSONエンコードされた配列として関連レコードのリストを返します。指定された関連付けが単数形(「モデル」)の場合、このアクションは、JSONエンコードされた辞書として関連レコードを返します。
パラメータ | タイプ | 詳細 |
---|---|---|
model | 包含モデルのidentity。 例: 'purchase' (GET /purchase/47/cashier の場合) |
|
id | 親レコードの主キー。 例: '47' (GET /purchase/47/cashier の場合) |
|
association | 関連付けの名前。 例: 'cashier' (GET /purchase/47/cashier の場合)または'products' (GET /purchase/47/products の場合) |
|
where | 特定の属性に基づいてフィルタリングする代わりに、Waterlineクエリ言語のWHERE句をJSON文字列としてエンコードしたwhere パラメータを指定することもできます。これにより、contains 、startsWith 、その他のサブ属性クエリ修飾子を利用して、より強力なfind() クエリを実行できます。例: ?where={"name":{"contains":"theodore"}} |
|
limit | 返すレコードの最大数(ページングに役立ちます)。デフォルトは30です。 例: ?limit=100 |
|
skip | スキップするレコードの数(ページングに役立ちます)。 例: ?skip=30 |
|
sort | ソート順。デフォルトでは、返されるレコードは主キー値で昇順にソートされます。 例: ?sort=lastName%20ASC |
|
select | 結果の各レコードに含める属性を、コンマ区切りのリストとして指定します。デフォルトでは、すべての属性が選択されます。複数形(「コレクション」)の関連付け属性には無効です。 例: ?select=name,age 。 |
|
omit | 結果の各レコードから除外する属性を、コンマ区切りのリストとして指定します。select と同時に使用することはできません。複数形(「コレクション」)の関連付け属性には無効です。例: ?omit=favoriteColor,address 。 |
購入番号47を担当したcashier
を取得します。
`GET /purchase/47/cashier`
{
"name": "Dolly",
"id": 7,
"createdAt": 1485462079725,
"updatedAt": 1485476060873,
}
jQueryの使用
$.get('/purchase/47/cashier', function (cashier) {
console.log(cashier);
});
Angularの使用
$http.get('/purchase/47/cashier')
.then(function (cashier) {
console.log(cashier);
});
sails.io.jsの使用
io.socket.get('/purchase/47/cashier', function (cashier) {
console.log(cashier);
});
cURLの使用
curl https://#:1337/purchase/47/cashier
コレクションを取得することもできます。たとえば、従業員番号7のinvolvedInPurchases
を取得するには、
GET /employee/7/involvedInPurchases
[
{
"amount": 10000,
"createdAt": 1485476060873,
"updatedAt": 1485476060873,
"id": 47,
"cashier": 7
},
{
"amount": 50,
"createdAt": 1487015460792,
"updatedAt": 1487015476357,
"id": 52,
"cashier": 7
}
]
- 上記の最初の例では、購入番号47に
cashier
がない場合(つまり、null
の場合)、このアクションは404ステータスコードで応答します。上記の例では、「rest」ブループリントルーティングが有効になっている(または、このブループリントアクションを同等のカスタムルートとしてバインドしている)、プロジェクトに空の
Employee
モデルとPurchase
モデルが少なくとも1つ含まれており、Employee
に関連付け属性involvedInPurchases: {model: 'Purchase'}
があり、Purchase
にcashier: {model: 'Employee'}
があることを前提としています。これは、以下を実行することで簡単に実現できます。$ sails new foo $ cd foo $ sails generate model purchase $ sails generate model employee
…その後、
api/models/Employee.js
とapi/models/Purchase.js
を編集します。