REST API 最新データ 検索

API仕様

  • 指定したdatatypeの最新データを取得して応答します。

API パラメータ仕様

リクエストパラメータ

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

    セクション パラメータ タイプ 必須 設定値 意味 備考
    query   ハッシュ 必須 以下のパラメータを設定 REST API毎の情報設定セクション  
      datatypename 文字列 必須 任意 取得するデータタイプ名 利用申請時に発行されます。
      dataversion 文字列 必須 任意 取得するデータのバージョン範囲  
      limit 数値 必須 0~2500 検索で応答する最大上限数  
      sortorder 配列 必須 任意 検索結果のソート順指定 パラメータ詳細は後述します。
      matching 配列 必須 任意 取得データの検索条件指定 パラメータ詳細は後述します。
    • datatypename: 検索対象データタイプ名を指定します。

    • dataversion: 検索対象のデータバージョン範囲を指定します。以下に指定可能な値を示します。

      設定値 意味
      * すべてのデータバージョンを検索対象とする。
      ==数値 指定した数値のデータバージョンのみを検索対象とする。
      <<数値 指定した数値のデータバージョンより小さいバージョンを検索対象とする。
      <=数値 指定した数値のデータバージョン以下のバージョンを検索対象とする。
      >>数値 指定した数値のデータバージョンより大きいバージョンを検索対象とする。
      >=数値 指定した数値のデータバージョン以上のバージョンを検索対象とする。
    • limit: 検索結果で応答するデータレコード上限値を指定します。

      • 0指定時は、1000指定(システムデフォルト件数)として扱います。
      • 2500件を超えている場合、2500指定として扱います。
    • sortorder: 検索結果のソート順を指定するハッシュ配列

      • ソート指定なしの場合は、空の配列を設定します。

      • ソートを指定する場合、key,is_ascのパラメータを全て設定します。

      • ハッシュ『配列』と記載していますが、要素数は最大で1つまで指定可能です。

      • パラメータを以下に示します。

        セクション パラメータ タイプ 必須 設定値 意味 備考
        sortorder   配列 必須 以下のパラメータを1要素毎に設定する。 ソート順指定ハッシュ配列  
          key 文字列 任意 任意 ソートするキー名(カラム)  
          is_asc 数字による文字列 任意 0:降順、1:昇順 ソートする方向  
        • key: 検索結果のソートを行うキー名(カラム)を指定します。以下に指定可能な値を示します。

          設定値 意味
          id データユニークID
          create_date データ登録日時
          update_date データ最終更新日時
          expire_date データ失効日時
          <固有名称> データタイプ毎に定義されたパラメータ
        • is_asc: 検索結果のソート行う方向を指定します。

    • matching: 検索条件を指定する構造体配列

      • 検索条件なしの場合は、空の配列を設定します。

      • 検索条件を指定する場合、key,value,patternのパラメータを全て設定します。

      • 複数の検索条件を指定した場合、各要素の論理演算ANDで検索を行います。

        • ORはできません。
      • パラメータを以下に示します。

        セクション パラメータ タイプ 必須 設定値 意味 備考
        matching   配列 必須 以下のパラメータを1要素毎に設定する。 検索条件指定ハッシュ配列  
          key 文字列 任意 任意 検索条件キー名(カラム)  
          value 文字列 任意 任意 検索条件バリュー値  
          pattern 文字列 任意 cmp, fcmp, scmp, gt, lt 検索一致パターン  
        • key: 検索条件のキー名を指定します。以下に指定可能な値を示します。

          設定値 意味
          id データユニークID
          create_date データ登録日時
          update_date データ最終更新日時
          expire_date データ失効日時
          <固有名称> データタイプ毎に定義されたパラメータ
          • rawdataは指定できません。
        • value: 検索条件の値を指定します。

        • pattern: 検索条件の一致パターンを指定します。以下に指定可能な値を示します。

          設定値 意味
          cmp 完全一致(大文字小文字を区別します)
          fcmp 前方一致(大文字小文字を区別します)
          scmp 部分一致(大文字小文字を区別します)
          gt 大なり
          lt 小なり
          • keyにcreate_date, update_dateまたはexpire_dateを指定時に、fcmpまたはscmpを指定した場合、秒未満を切り捨てて検索します。
          • gtまたはltを指定する場合、keyはcreate_date, update_dateまたはexpire_dateのいずれかを指定します。

レスポンスパラメータ

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

    パラメータ タイプ 意味 備考
    datalist 配列 取得したデータを格納したハッシュ配列 該当なしの場合は、配列要素数は0
    • datalist: 取得したデータが格納されたハッシュ配列

      • パラメータを以下の表に示します。

        パラメータ タイプ 意味 備考
        id 数字による文字列 最新データユニークID  
        datatypename 文字列 データタイプ名  
        dataversion 数値 データバージョン  
        create_date 文字列 データ登録日時 ISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmmm+HH:MM)
        update_date 文字列 データ最終更新日時 ISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmmm+HH:MM)
        expire_date 文字列 データ失効日時
        空文字、またはISO8601形式(例:YYYY-MM-DDTHH:MM:SS.mmmmmm+HH:MM)
        クライアント側の処理で使用
        rawdata 文字列 登録元情報生データ
        リクエストパラメータ共通仕様のuse_rawdataに"1"設定している場合のみ、レスポンスパラメータに含む。
        生データが存在しない場合、空文字が設定されます。
        <固有名称> 文字列 データタイプ毎に定義されたパラメータ パラメータは利用者が任意で定義します。

サンプルプログラム

  • 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
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    #
    # EqCare sample client for python3
    #
    # please execute
    #  $ python3 restapi_data_search_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',               # データバージョン
                    'limit': 100,                     # 検索で応答する最大上限数
                    'sortorder': [                    # ソート順
                        {'key': 'update_date', 'is_asc': '0'},
                    ],
                    'matching': [                     # 検索パラメータ
                        {'key': 'trialcode', 'value': '110', 'pattern': 'cmp'},
                    ],
                }
            }
    
            # 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/search.json')
    
        print('=============================')