レコードの検索(Search API)
Search APIでは、任意の項目を検索条件として指定し、任意の項目を取得できます。各項目のアイテムキーは、各アプリのページをご覧ください。
Request
URL
https://gateway-esm.softbrain.com/esm-api/{tenant}/pub/esms/v1/sheets/{sheetName}/search
HTTP Method
POST
Parameter
Path Parameter
| No. | パラメータ | 必須 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|---|---|
| 1 | tenant | ○ | string | - | 会社ID |
| 2 | sheetName | ○ | string | - | 対象アプリ名 |
Request Body
| No. | プロパティ名 | 必須 | 項目名 | タイプ | 備考 |
|---|---|---|---|---|---|
| 1 | searchCondition | 検索条件 | object | ||
| - condition | 検索条件 | array(object) | カラムを指定して検索をする際に使用。keywordと同時に指定した場合はAND検索になる。 | ||
| -- column | 検索条件対象アイテムキー | string | 設定する項目はtargetsへの指定が必須(※カーボン型の項目とカーボン型に配置された項目は指定不可) | ||
| -- operator | 演算子 | string | 使用できる演算子について | ||
| -- value | 検索条件に設定する値 | string/array(string) | 検索条件の比較右辺(「in」「like」演算子の場合の場合リスト形式も許容) | ||
| -- connection | 結合演算子 | string | OR,AND のいずれかで指定。(無指定の場合はAND) | ||
| -- conditions | 結合検索条件 | array(object) | conditionの配列で指定 | ||
| - keyword | 検索キーワード | keyword検索をする際に使用。conditionと同時に指定した場合はAND検索になる。keyword検索対象項目について | |||
| 2 | order | ソート条件 | object | ||
| - itemKey | 対象アイテムキー | string | |||
| - sort | 昇順/降順 | string | "ASC" or "DESC" | ||
| 3 | pagination | ページネーション | object | ||
| - limit | 1ページ当たりの取得数 | number | 1以上・50以下 | ||
| - page | ページ番号 | number | 1以上 | ||
| 4 | targets | 検索対象 | array(object) | 検索をする対象の項目 targetsの概念と指定方法 | |
| - relationItemDefKey | 紐づきアイテムキー | string | 紐づき項目のアイテムキー。一階層目の場合はnull。 ※ relationItemDefKey が target_customer、target_employee、target_businessplan、target_deal のいずれかの場合、targetCols がサポート対象外の項目であれば検索を実行せず、エラー「項目「{0}」は検索対象外です。」を返します。 | ||
| - targetCols | 検索対象アイテムキー | string | 対象のアイテムキー。relationItemDefKeyがあるときはその中の対象 ※ カーボン型(target_customer など)に対するサポート対象の項目 |
Example
{
"searchCondition": {
"condition": [
{
"column": "business_cards.business_card.relational_customer@customers.customer.id",
"operator": "=",
"value": "123",
"connection": "AND"
},
{
"conditions": [
{
"column": "business_cards.business_card.business_card_full_name",
"operator": "=",
"value": "営業太郎"
},
{
"column": "business_cards.business_card.business_card_full_name",
"operator": "=",
"value": "営業二郎"
}
],
"connection": "OR"
}
]
},
"order": {
"itemKey": "business_cards.business_card.id",
"sort": "ASC"
},
"pagination": {
"limit": 10,
"page": 1
},
"targets": [
{
"relationItemDefKey": null,
"targetCols": [
"business_cards.business_card.id",
"business_cards.business_card.mobile_email",
"business_cards.business_card.business_card_full_name",
"business_cards.business_card.department_name",
"business_cards.business_card.position_name",
"business_cards.business_card.relational_customer"
]
},
{
"relationItemDefKey": "business_cards.business_card.relational_customer",
"targetCols": [
"business_cards.business_card.relational_customer@customers.customer.id",
"business_cards.business_card.relational_customer@customers.customer.customer_name"
]
}
]
}
Response
Response Body
| No. | プロパティ名 | 項目名 | タイプ | 備考 |
|---|---|---|---|---|
| 1 | items | レコードリスト | array(object) | 検索結果のリスト。Requestのtargetsで指定した項目が返却。 |
| 2 | meta | メタ情報 | object | |
| 3 | - pagination | ページング情報 | object | |
| 4 | -- count | 件数 | number | ページ内の取得件数 |
| 5 | -- total_count | 総件数 | number | 検索条件に一致する全レコード数 |
| 6 | -- current_page | ページ番号 | number | 現在のページ番号 |
| 7 | -- total_page | 総ページ数 | number | 全ページ数 |
Example
{
"items": [
{
"business_cards.business_card.department_name": "営業一部",
"business_cards.business_card.position_name": "課長",
"business_cards.business_card.id": 10001,
"business_cards.business_card.business_card_full_name": "営業太郎",
"business_cards.business_card.relational_customer": {
"business_cards.business_card.relational_customer@customers.customer.id": 123,
"business_cards.business_card.relational_customer@customers.customer.customer_name": "ソフトブレーン株式会社"
},
"business_cards.business_card.mobile_email": "eigyo.taro.mobile@example.com"
},
{
"business_cards.business_card.department_name": "営業二部",
"business_cards.business_card.position_name": "係長",
"business_cards.business_card.id": 10002,
"business_cards.business_card.business_card_full_name": "営業二郎",
"business_cards.business_card.relational_customer": {
"business_cards.business_card.relational_customer@customers.customer.id": 123,
"business_cards.business_card.relational_customer@customers.customer.customer_name": "ソフトブレーン株式会社"
},
"business_cards.business_card.mobile_email": "eigyo.jiro.mobile@example.com"
}
],
"meta": {
"pagination": {
"count": 2,
"total_count": 2,
"current_page": 1,
"total_page": 1
}
}
}