REST API 履歴データ 更新履歴取得¶
API パラメータ仕様¶
リクエストパラメータ¶
クライアントからREST APIに要求する固有パラメータを以下の表に示します。
セクション パラメータ タイプ 必須 設定値 意味 備考 query ハッシュ 必須 以下のパラメータを設定 REST API毎の情報設定セクション createid 数字による文字列 必須 任意 検索対象の最新データユニークID 要素は、数字文字列で指定します。 datatypename 文字列 必須 任意 取得するデータタイプ名 利用申請時に発行されます。 dataversion 数値 必須 任意 取得するデータバージョン generation 数値 必須 0~100 履歴取得最大数 sortorder 配列 必須 任意 検索結果のソート順指定 パラメータ詳細は後述。 createid: 検索対象の最新データユニークID
- 要素は、数字文字列で指定します。
datatypename: 検索対象データタイプ名を指定します。
dataversion: 検索対象のデータバージョンを指定します。
generation: 取得する更新履歴の最大世代数を指定します。
- 0指定時、10件(システムデフォルト件数)として扱います。
- 100件を超えている場合、100件として扱います。
sortorder: 検索結果のソート順を指定する構造体配列
ソート指定なしの場合は、空の配列を設定します。
ソート指定する場合、key,is_ascのパラメータ全てを設定します。
ハッシュ『配列』と記載していますが、要素数は最大1つまで指定可能です。
パラメータを以下に示します。
セクション パラメータ タイプ 必須 設定値 意味 備考 sortorder 配列 必須 以下のパラメータを設定 ソート順指定ハッシュ配列 要素数は1つまで key 文字列 任意 任意 ソートするキー名 is_asc 数値 任意 0:降順、1:昇順 ソートする方向 key: 検索結果のソートを行うキー名(カラム)を指定します。以下に指定可能な値を示します。
設定値 意味 id データユニークID create_date データ登録日時 update_date データ最終更新日時 expire_date データ失効日時 <固有名称> データタイプ毎に定義されたパラメータ is_asc: 検索結果のソート行う方向を指定します。
レスポンスパラメータ¶
REST APIからクライアントに応答する固有パラメータを以下の表に示します。
パラメータ タイプ 意味 備考 datalist Array 取得したデータを格納した構造体配列 該当なしの場合は、配列要素数0 datalist: 取得したデータが格納された構造体配列
パラメータを以下の表に示します。
パラメータ タイプ 意味 備考 id 数字による文字列 履歴データユニークID createid 数字による文字列 最新データユニークID 初回登録時に割り当てられるID/history/get_context.jsonで本パラメータを指定することで、対象の更新履歴情報を取得します。datatypename 文字列 データタイプ名 dataversion 数値 データバージョン create_date 文字列 データ登録日時 ISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmm+HH:MM) update_date 文字列 データ最終更新日時 ISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmm+HH:MM) expire_date 文字列 データ保持期限日時 空文字、またはISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmm+HH:MM)クライアント側の処理で使用rawdata 文字列 登録元情報生データ リクエストパラメータ共通仕様のuse_rawdataに"1"設定している場合のみ、レスポンスパラメータに含む。生データが存在しない場合、空文字が設定されます。<固有名称> 文字列 データタイプ毎に定義されたパラメータ パラメータは利用者が任意で定義します。 - datalistは、パラメータ:idの昇順でソートした結果が格納されます。
サンプルプログラム¶
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
#!/usr/bin/python3 # -*- coding: utf-8 -*- # # EqCare sample client for python3 # # please execute # $ python3 restapi_history_get_context_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, # データバージョン 'createid': '2', # 履歴テーブルの「データ初出id」 'generation': 10, # 履歴の最大世代数 'sortorder': [ # ソート順 {'key': 'update_date', 'is_asc': '0'}, ], } } # 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('/history/get_context.json') print('=============================')