Source code for benten_client.rest_metadata

# coding:utf-8
"""
   REST API for metadata

   Copyright (C) 2020 JASRI All Rights Reserved.
"""

import json
import requests

from . import config
from . import util

[docs]class Main(): def __init__(self, parent): self.__parent = parent self.mappings = Mappings(self) self.keys = Keys(self)
[docs] def endpoint(self, path): return self.__parent.endpoint(path)
[docs] def access_token(self): return self.__parent.access_token()
[docs]class Mappings(): def __init__(self, parent): self.__parent = parent self.__endpoint = parent.endpoint(config.metadata_mappings_path)
[docs] def post(self, **v): """ REST API: メタデータのマッピング情報取得 * Endpoint : [agent-url]/benten/v1/metadata/mappings * Method : POST * Response: JSON * Authorization : 要 :param \**v: See below. :Keyword Arguments: * *index_name* (``str`` [Option]) : index名 * ex. : spring8-bl14b2 * 省略時、アカウントでログイン時はその名前が適用される。 * *facility* (``str`` [Option]) : facility名 * ex. : SPring-8 * *division_name* (``str`` [Option]) : division名 * ex. : BL14B2 (注) 上記指定がない際はログインアカウントに属するindexを用いてマッピング情報を取得する :return: A dict of mapping keys. :Keyword: * properties (``dict``) : メタデータ マッピング情報 """ vdata = {} for key in ["index_name", "facility", "division_name"]: if key in v: vdata[key] = v[key] ret = requests.post(self.__endpoint, vdata, verify=False, headers=util.headers_authorization(self.__parent.access_token())) return util.json_response(ret)
[docs]class Keys(): def __init__(self, parent): self.__parent = parent self.__endpoint = parent.endpoint(config.metadata_keys_path)
[docs] def post(self, **v): """ REST API: メタデータのKey情報取得 * Endpoint : [agent-url]/benten/v1/metadata/keys * Method : POST * Response: JSON * Authorization : 要 :param \**v: See below. :Keyword Arguments: :return: A dict of mapping keys. :Keyword: * *index_name* (``str``) : index名 * *list* (``list(str)``) : Keyリスト * *error* (``dict``) : エラー情報 (エラー発生時のみ附加) """ vdata = {} ret = requests.post(self.__endpoint, vdata, verify=False, headers=util.headers_authorization(self.__parent.access_token())) return util.json_response(ret)