指定された関連付けを持つレコードの外部レコードを取得して返します。
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を編集します。