コード例 #1
0
ファイル: client.py プロジェクト: xiaoguangjj/order_script
class Resource(object):
    def __init__(self, client, name, resource_base, api_defines=None):
        self.route_base = resource_base
        self.client = client
        self.name = name
        if api_defines:
            self.apis = api_defines

    def __getattr__(self, item):
        api_info = self.apis.get(item)
        if not api_info:
            raise AttributeError('unknown api name: %s' % item)
        url = '/'.join([self.route_base, api_info['url']])
        url = url.replace('//', '/')
        method = api_info['method']

        def fn(params=None, **payload):
            return self.client.request_api(url, params, method, payload)

        setattr(self, item, fn)
        return fn


resource_yaml_name = '/'.join(__name__.split('.')[:-1]) + '/resources'

_records = load_yaml_file(resource_yaml_name + '.yml')

_resource_registry.extend(_records)

del _records