$method
このパラメーターは、返されたエンティティまたはエンティティセレクションに対して実行する処理を指定するのに使います。
使用可能なシンタックス
シンタックス | 例題 | 説明 |
---|---|---|
$method=delete | POST /Employee?$filter="ID=11"& $method=delete | エンティティまたはエンティティセレクションを削除します |
$method=entityset | GET /People/?$filter="ID>320"& $method=entityset& $timeout=600 | RESTリクエストで定義されたエンティティのコレクションに基づいて、4D Server のキャッシュにエンティティセットを作成します |
$method=release | GET /Employee/$entityset/<entitySetID>?$method=release | 4D Server のキャッシュからエンティティセットを削除します |
$method=subentityset | GET /Company(1)/staff?$expand=staff& $method=subentityset& $subOrderby=lastName ASC | RESTリクエストで定義されたリレートエンティティのコレクションに基づいて、エンティティセットを作成します |
$method=update | POST /Person/?$method=update | 一つ以上のエンティティを更新または作成します |
$method=delete
エンティティまたは (RESTで作成された) エンティティ セレクションを削除します
説明
$method=delete
を使ってエンティティ、またはエンティティセレクションを削除します。 たとえば、$filter
を使って定義したエンティティセレクションや、\{dataClass\}(\{key\})
(例: /Employee(22)) のように直接特定したエンティティが対象です。
$entityset/\{entitySetID\}
のようにエンティティセットを呼び出して、そこに含まれるエンティティを削除することもできます。
例題
キーが 22であるエンティティを削除するには、次の RESTリクエストが書けます:
POST /rest/Employee(22)/?$method=delete
$filter を使ったクエリも可能です:
POST /rest/Employee?$filter="ID=11"&$method=delete
$entityset/{entitySetID} で呼び出したエンティティセットを削除する場合は次のように書きます:
POST /rest/Employee/$entityset/73F46BE3A0734EAA9A33CA8B14433570?$method=delete
レスポンス:
{
"ok": true
}
$method=entityset
RESTリクエストで定義されたエンティティのコレクションに基づいて、4D Server のキャッシュにエンティティセットを作成します
説明
RESTでエンティティのコレクションを作成し た場合、これをエンティティセットとして 4D Server のキャッシュに保存することができます。 エンティティセットには参照番号が付与されます。これを $entityset/\{entitySetID\}
に渡すと、当該エンティティセットにアクセスできます。 デフォルトで、エンティティセットは 2時間有効です。$timeout に値 (秒単位) を渡すことで、有効時間を変更できます。
エンティティセットを作成する際に、$filter
や $orderby
と同時に$savedfilter
や $savedorderby
も使用していた場合には、4D Server のキャッシュからエンティティセットが削除されていても、同じ参照IDで再作成できます。
例題
4D Server のキャッシュに2時間保存されるエンティティセットを作成するには、RESTリクエストの最後に $method=entityset
を追加します:
GET /rest/People/?$filter="ID>320"&$method=entityset
保存時間が 10分のエンティティセットを作成するには、次のように $timeout
に値を渡します:
GET /rest/People/?$filter="ID>320"&$method=entityset&$timeout=600
フィルターや並べ替えの情報を保存するには、$savedfilter
や $savedorderby
に true を渡します。
エンティティセットを作成する際には、
$skip
および$top/$limit
は無視されます。
エンティティセットを作成すると、返されるオブジェクトの先頭に __ENTITYSET
という要 素が追加され、エンティティセットにアクセスするための URI を提供します:
__ENTITYSET: "http://127.0.0.1:8081/rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7"
$method=release
4D Server のキャッシュからエンティティセットを削除します。
説明
$method=entityset
によって作成したエンティティセットを、4D Server のキャッシュから削除することができます。
例題
既存のエンティティセットを削除します:
GET /rest/Employee/$entityset/4C51204DD8184B65AC7D79F09A077F24?$method=release
レスポンス:
リクエストが成功した場合のレスポンス:
{
"ok": true
}
エンティティセットが見つからなかった場合には、エラーが返されます
{
"__ERROR": [
{
"message": "Error code: 1802\nEntitySet \"4C51204DD8184B65AC7D79F09A077F24\" cannot be found\ncomponent: 'dbmg'\ntask 22, name: 'HTTP connection handler'\n",
"componentSignature": "dbmg",
"errCode": 1802
}
]
}
$method=subentityset
RESTリクエストで定義されたリレートエンティティのコレクションに基づいて、4D Server のキャッシュにエンティティセットを作成します
説明
$method=subentityset
を使うことで、RESTリクエストが定義されたリレーション属性によって返されるデータを並べ替えることができます。
データを並べ替えるには $subOrderby
を使います。 並べ替えの基準とする各属性について、並べ替え順を指定します。ASC ( asc) が昇順、DESC (desc) が降順です。 デフォルトでは、データは昇順に並べ替えられます。
複数の属性を指定するには、カンマ区切りにします (例
: $subOrderby="lastName desc, firstName asc")。
例題
あるエンティティのリレートエンティティだけを取得したいとき、たとえば Company データクラスの staff リレーション名が Employee データクラスにリンクしている場合には、次の RESTリクエストが書けます:
GET /rest/Company(1)/staff?$expand=staff&$method=subentityset&$subOrderby=lastName ASC
レスポンス:
{
"__ENTITYSET": "/rest/Employee/$entityset/FF625844008E430B9862E5FD41C741AB",
"__entityModel": "Employee",
"__COUNT": 2,
"__SENT": 2,
"__FIRST": 0,
"__ENTITIES": [
{
"__KEY": "4",
"__STAMP": 1,
"ID": 4,
"firstName": "Linda",
"lastName": "Jones",
"birthday": "1970-10-05T14:23:00Z",
"employer": {
"__deferred": {
"uri": "/rest/Company(1)",
"__KEY": "1"
}
}
},
{
"__KEY": "1",
"__STAMP": 3,
"ID": 1,
"firstName": "John",
"lastName": "Smith",
"birthday": "1985-11-01T15:23:00Z",
"employer": {
"__deferred": {
"uri": "/rest/Company(1)",
"__KEY": "1"
}
}
}
]
}
$method=update
一つ以上のエンティティを更新または作成します