REST API 最新データ 登録/更新¶
※通常のデータ受信契約のご利用者様にはデータの読み取り権限のみを付与するため、本APIはご利用いただけません。
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: 登録対象のデータバージョンを指定します。
サンプルプログラム¶
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('=============================')