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 でレスポンスします。