WebAPI を利用する

以下の WebAPI を利用できます。

この中で、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
    }