WebAPI を利用する¶
以下の WebAPI を利用できます。
- テーブルの検索条件を指定し、検索結果一覧を取得する
- テーブルのデータを1件取得する
- テーブルのデータを1件登録する
- テーブルのデータを1件更新する
- テーブルのデータを1件削除する
- テーブルのデータを一括登録する
- テーブルのデータを一括更新する
- テーブルのデータを一括登録・更新する
- テーブルのデータを一括削除する
- テーブルの最終更新日時を取得する(ヘッダ情報のみ)
- テーブルのデータを一括取得する
- ナレッジの検索条件を指定し、ナレッジ情報を参照する
この中で、CELF管理テーブル「sys_user」、「sys_group」、「sys_operation_log」が利用できるのは、 「テーブルの最終更新日時を取得する(ヘッダ情報のみ)」と「テーブルのデータを一括取得する」です。 これらの WebAPI は、データの更新頻度が少ないマスタテーブルに対する利用を想定しています。
各WebAPIに共通するURL/リクエスト/レスポンス¶
各WebAPIに共通して指定するURL、リクエストヘッダ及びリクエストパラメータと、レスポンスされる可能性のあるレスポンスヘッダを示します。
URL
URL 説明 例 CELFサーバーURL APIサーバーのURL https://api.cloud.celf.jp (クラウド版の場合) テーブルAPI名 対象となるテーブルのAPI名 partners ID 対象となるテーブルの1件を特定するID 25 リクエストヘッダ
ヘッダ名 必須 説明 例 X-CELF-API-KEY 必須 APIキー X-CELF-API-KEY: 3fce5122-e14f-4f9a-a687-5e5cd1c4b57f リクエストパラメータ
パラメータ名 必須 説明 例 company 必須(クラウド版の場合) 企業ID company=SCSK1 レスポンスヘッダ
- 企業IDとAPIキーの組み合わせが正しくない場合は、認証エラー401をレスポンスします。
- 公開されてないテーブルが指定された場合は、権限エラー403をレスポンスします。
テーブルの検索条件を指定し、検索結果一覧を取得する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/query
メソッド
POST
リクエストパラメータ
パラメータ名 必須 説明 例 limit 省略可 取得件数(指定のない場合は100) limit=50 offset 省略可 開始からスキップする件数(指定のない場合は0) offset=100 sort 省略可 ソート対象カラム名 sort=tr_name,-touroku_date (カラム名はカンマで区切って複数指定することができます。「+」または記号なしで昇順、「-」で降順となります。) リクエストボディ(JSON)
検索条件を指定できます。文字列型データは部分一致、それ以外の型は完全一致または範囲を指定することができます。(例)名前に"Corporation"を含み、登録日が2022年4月1日から2023年3月31日までの場合{ "tr_name": "Corporation", "touroku_date": { "from": "2022/04/01", "to": "2023/03/31" } }レスポンスボディ(JSON)
検索条件に合致するデータを取得範囲指定に従ってソート順でレスポンスします。"total"は取得件数ではなく、検索条件に合致する全データ件数です。(例)テーブルAPI名が"partners"の場合{ "partners": [ { "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }, { "tr_code": "2222", "tr_name": "Yamakawa Corporation", ・・・ }, ・・・ ], "total": 68 }
テーブルのデータを1件取得する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/{ID}
メソッド
GET
レスポンスボディ(JSON)
指定した ID を持つデータをレスポンスします。(例){ "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }
テーブルのデータを1件登録する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}
メソッド
POST
リクエストボディ(JSON)
CELFのテーブルで自動設定される ID、LAST_UPDATER、LAST_MODIFIED 以外のデータをリクエストします。(例){ "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }レスポンスボディ(JSON)
登録したデータの ID をレスポンスします。(例){ "id": 4 }
テーブルのデータを1件更新する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/{ID}
メソッド
PATCH
リクエストボディ(JSON)
CELFのテーブルで自動設定される ID、LAST_UPDATER、LAST_MODIFIED 以外のデータをリクエストします。指定しなかったカラムは変更しません。(例){ "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }レスポンスボディ(JSON)
なし
テーブルのデータを1件削除する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/{ID}
メソッド
DELETE
レスポンスボディ(JSON)
なし
テーブルのデータを一括登録する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/bulkinsert
メソッド
POST
リクエストボディ(JSON)
CELFのテーブルで自動設定されるID、LAST_UPDATER、LAST_MODIFIED以外のデータの配列をリクエストします。(例)テーブルAPI名が"partners"の場合{ "partners": [ { "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }, { "tr_code": "2222", "tr_name": "Yamakawa Corporation", ・・・ }, ・・・ ] }レスポンスボディ(JSON)
登録したデータの ID の配列をレスポンスします。(例){ "ids": [ 4, 5, ・・・ ] }
テーブルのデータを一括更新する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/bulkupdate
メソッド
POST
リクエストボディ(JSON)
更新したいデータを特定する ID を含むデータの配列をリクエストします。(例)テーブルAPI名が"partners"の場合{ "partners": [ { "id": 4, "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }, { "id": 7, "tr_code": "2222", "tr_name": "Yamakawa Corporation", ・・・ }, ・・・ ] }レスポンスボディ(JSON)
なし
テーブルのデータを一括登録・更新する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/bulkupsert
メソッド
POST
リクエストボディ(JSON)
登録したいデータとしてCELFのテーブルで自動設定されるID、LAST_UPDATER、LAST_MODIFIED以外のデータの配列を、更新したいデータを特定する ID を含むデータの配列をリクエストします。指定された更新したいデータをすべて更新した後に、データを登録します。(例)テーブルAPI名が"partners"の場合{ "partners": [ { "id": 4, "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }, { "tr_code": "2222", "tr_name": "Yamakawa Corporation", ・・・ }, ・・・ ] }レスポンスボディ(JSON)
登録したデータの ID の配列をレスポンスします。更新したデータの ID はレスポンスされません。(例){ "ids": [ 8, ・・・ ] }
テーブルのデータを一括削除する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}/bulkdelete
メソッド
POST
リクエストボディ(JSON)
削除したい ID の配列をリクエストします。(例){ "ids": [ 1, 3, 8 ] }レスポンスボディ(JSON)
なし
テーブルの最終更新日時を取得する(ヘッダ情報のみ)¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}
メソッド
HEAD
レスポンスボディ(JSON)
なしレスポンスヘッダ
- テーブルデータの LAST_MODIFIED の最新日時を、Last-Modified でレスポンスします。
テーブルのデータを一括取得する¶
エンドポイント
{CELFサーバーURL}/v1/tables/{テーブルAPI名}
メソッド
GET
リクエストパラメータ
パラメータ名 必須 説明 例 limit 省略可 取得件数(指定のない場合は100) limit=50 offset 省略可 開始からスキップする件数(指定のない場合は0) offset=100 sort 省略可 ソート対象カラム名 sort=tr_name,-touroku_date (カラム名はカンマで区切って複数指定することができます。「+」または記号なしで昇順、「-」で降順となります。) レスポンスボディ(JSON)
取得範囲指定に従ってソート順でレスポンスします。"total"は取得件数ではなく、全データ件数です。(例)テーブルAPI名が"partners"の場合{ "partners": [ { "tr_code": "1111", "tr_name": "Umiyama Corporation", ・・・ }, { "tr_code": "2222", "tr_name": "Yamakawa Corporation", ・・・ }, ・・・ ], "total": 68 }レスポンスヘッダ
- テーブルデータの LAST_MODIFIED の最新日時を、Last-Modified でレスポンスします。
ナレッジの検索条件を指定し、ナレッジ情報を参照する¶
注意
- 本APIを利用するには、 CELF Connectors WebAPI エクステンションプラスの有償ライセンスが必要になります。
エンドポイント
{CELFサーバーURL}/v1/knowledges/{ナレッジAPI名}/reference
メソッド
POST
リクエストパラメータ
パラメータ名 必須 説明 例 limit 省略可 最大取得件数(指定のない場合は10) limit=10 similarity 省略可 類似度(指定のない場合は0.8) similarity=0.8 リクエストボディ(JSON)
検索条件を指定できます。"query"は必須項目です。検索したい内容を指定することができます。"field"にはナレッジ登録時、検索対象カラムに設定したカラム名を指定することができます。"operator"には下記の条件パラメータ内から指定することができます。
条件パラメータ 意味 eq 一致する(完全一致検索) ne 一致しない gt より大きい gte 以上 lt より小さい lte 以下 in いずれかと一致する like 含む(あいまい検索) "value"には条件値を指定することができます。ちなみに
- 条件パラメータにinを指定する場合は"value"の値を"value": [条件にしたい値1,条件にしたい値2]のように指定してください。
(例)「回答」カラムに「CELFクライアント」を含むインストール要件のナレッジデータを参照する場合{ "query": "インストール時に必要なものは?", “metadata_filters”:[ { "field":"回答", "operator":"like", "value":"CELFクライアント" } ], ・・・ }レスポンスボディ(JSON)
検索条件に合致するデータを取得範囲指定に従ってレスポンスします。"document"は取得したナレッジの検索対象カラムに設定した内容です。"tableName"は取得したナレッジに設定したテーブル名です。"similarityScore"は取得した際の類似度スコアです。(例)ナレッジの検索対象カラムに"質問","回答"というカラム名を設定した場合{ "results": [ { "document": { "質問": "CELFを利用するにあたりPCにインストールが必要なものは?", "回答": "CELFクライアントのインストールが必要となります。\n(CELFアプリを表示するための独自のブラウザ機能となります)", "tableName": "qaa_m_faqナレッジマスタ" }, "similarityScore": 0.47848647767981023 }, ・・・ ], "total": 3 }