REST API 最新データ 登録/更新

※通常のデータ受信契約のご利用者様にはデータの読み取り権限のみを付与するため、本APIはご利用いただけません。

API仕様

  • 指定したdatatypeの情報を登録または更新し、結果を応答します。

API パラメータ仕様

リクエストパラメータ

  • クライアントからREST APIに要求する固有パラメータを以下の表に示します。

    セクション パラメータ タイプ 必須 設定値 意味 備考
    query   ハッシュ 必須 以下のパラメータを設定 REST API毎の情報設定セクション  
      datalist 配列 必須
    以下のパラメータを設定
    最大2500要素数
    更新対象構造体配列  
     
    • id
    文字列 必須 -1:新規登録、正数値:データ更新 更新対象のユニークID(新規は-1) 数字文字列で指定します。
     
    • expire_date
    文字列 必須 空文字またはISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmm+HH:MM) データ失効日時 空文字はデータ失効日時が不要な場合に指定します。
     
    • rawdata
    文字列 必須 空文字または任意 登録元情報生データ
    リクエストパラメータ共通仕様のuse_rawdataを"1"で指定時に登録/更新します。
    use_rawdataを未設定または"0"指定時は、rawdataは登録/更新しません。
    生データを利用しない場合は、空文字を指定します。
     
    • <固有名称>
    文字列 任意 任意 データタイプ毎に定義されたパラメータ パラメータは利用者が任意で定義します。
      datatypename 文字列 必須 任意 登録対象データタイプ名 利用申請時に発行されます。
      dataversion 数値 必須 任意 登録対象のデータバージョン 利用申請時に発行されます。
    • datalist: 登録情報をハッシュパラメータで持つ配列
      • 配列要素数は最大2500個まで指定可能
      • id: 登録対象のユニークID
        • 要素は、数字文字列で指定します。
        • "-1"を指定した場合、リクエストパラメータでデータの新規登録を行います。
        • 正数値を指定した場合、該当レコードをリクエストパラメータでデータの更新を行います。
      • expire_date: データ失効日時
        • データ検索結果取得時に、クライアント側の処理で利用する場合に設定します。
        • データ失効日時を超過しても、システムとして削除処理などは行いません。
      • rawdata: 登録元情報生データ
        • 外部から取得した情報(XMLなど)を元にして、抽出した情報の登録をする場合に、必要に応じて登録元の情報を設定します。
      • <固有名称>: 利用者で任意に定義することができるパラメータを設定します。
        • 以下のパラメータは予約語のため指定することができません。
          • id
          • createid
          • datatypename
          • dataversion
          • datatypeversion
          • create_date
          • update_date
          • expire_date
          • rawdata
    • datatypename: 登録対象データタイプ名を指定します。
    • dataversion: 登録対象のデータバージョンを指定します。

レスポンスパラメータ

  • REST APIからクライアントに応答する固有パラメータはありません。(共通パラメータのみ)

サンプルプログラム

  • python

      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    #
    # EqCare sample client for python3
    #
    # please execute
    #  $ python3 restapi_data_set_sample.py
    #
    # NOTICE
    #   This program tested with python3.5 and python3.6 .
    #
    import sys
    import json
    
    # pip install requests==2.21.0
    import requests
    
    
    """
    パラメータ
    """
    BASE_URL = 'https://api.example.com/info/1.0'
    API_USER = 'trialuser'
    API_PASS = 'trialpass'
    TARGET_DATATYPE = 'trialinfo'
    
    """
    定数
    """
    HEADERS = {
        'User-Agent': 'EqCare Sample Client for python3',
        'Content-Type': 'application/json',
    }
    
    
    def testcall(target_path):
        try:
            url = '%s%s' % (BASE_URL, target_path)
    
            param = {
                'system': {
                    'login_name': API_USER,           # 認証ユーザ名
                    'login_pass': API_PASS,           # 認証パスワード
                    'app_servername': '',             # APIの呼び出し元システムのサーバ名
                    'app_username': '',               # APIの呼び出し元システムのログイン名
                    'timezone': '',                   # タイムゾーン変換
                },
                'query': {
                    'datatypename': TARGET_DATATYPE,  # データタイプ名
                    'dataversion': 1,                 # データバージョン
                    'datalist': [
                        # 新規追加
                        {
                            'id': '-1',               # id 新規追加の場合は"-1"を設定
                            # アプリケーション固有のkey名でvalueを格納する
                            'trialcode': 110,
                            'kind': 'trialdata',
                        },
                        # 更新
                        # {
                        #     'id': '234',            # id 更新の場合は対象のidを設定
                        #     # アプリケーション固有のkey名でvalueを格納する
                        #     'trialcode': 111,
                        #     'kind': 'trialdata111',
                        # },
                    ],
                }
            }
    
            # jsonに変換します
            data = json.dumps(param)
    
            HEADERS['Content-Length'] = str(len(data))
    
            print('')
            print('request:')
            print(url)
            print(HEADERS)
            print(data)
            print('')
    
            # サーバにリクエストします
            response = _request(url, data.encode('utf-8'), HEADERS)
            print('response:')
            print(response)
            print('')
    
            # 結果を表示します
            print('result:')
            print_response(response)
            print('')
        except:
            msg = 'except ; %s; %s' % (sys.exc_info()[0], sys.exc_info()[1])
            print(msg)
    
        return 0
    
    
    def _request(url, data, headers={}):
        result = requests.post(url, data=data, headers=headers, timeout=60)
        return result.text
    
    
    def print_response(response):
        """
        結果を見やすくします
        """
        response = json.loads(response)
    
        print('code = %s' % response['code'])
        print('message = %s' % response['message'])
    
        if 'datalist' in response:
            print('datalist = ')
            print('------------')
    
            for item in response['datalist']:
                for k, v in item.items():
                    print('%s : %s' % (k, v))
    
                print('------------')
    
    
    if __name__ == '__main__':
        print('=============================')
    
        testcall('/data/set.json')
    
        print('=============================')