zoukankan      html  css  js  c++  java
  • python API url 级联生成

    参考了一下公司 python 达人 rpc 接口级联 api 调用

    rpc.api.users.list()

    rpc.api.login(username='',password='')

    rpc['api/users'](id=222)

    写了一个 demo,python 确实很简洁,不到 30 行代码搞定

    # coding=utf-8
    
    class NameChain(object):
        def __init__(self,prefix,callback):
            self._prefix = prefix
            self._callback = callback
    
        def __getattr__(self,item):
            next_prefix = self._prefix + '/' + item
            return NameChain(next_prefix,self._callback)
    
        def __call__(self,**kw):
            self._callback(self._prefix,kw)
    
        def __getitem__(self,item):
            self._prefix = item
            return self
    
    class Service(object):
        def __init__(self):
            self._api = NameChain('api',self._invoke)
    
        def _invoke(self,method,params):
            print '******************'
            print 'invoke method:',method
    
            if len(params) ==0:
                print 'params is empty'
                return
    
            print 'params is'
            for k,v in params.iteritems():
                print k,':',v
    
        @property
         def api(self):
             return self._api
    
    s = Service()
    api = s.api
    
    # 调用方式一
    print '调用方式一'
    # api/users
    api.users()   
    # api/user    params {"id",111,"name":"leslie"}
    api.user(id=111,name='leslie')
    # pai/user/tags 
    api.user.tags() 
     #api/user/tags/list params {"id",111,"session_id","love you forever"}
    api.user.tags.list(id=111,session_id='love you forever')
    
    # 调用方式二
    print '调用方式二'
    api['api/users']()
    api['api/users'](id=111,name='leslie')
    api['api/user/tags']()
    api['api/user/tags/list'](id=111,session_id='love you forever')
  • 相关阅读:
    greta一些简单实用的字符串匹配
    内存管理
    粒子系统
    资源的后台加载
    GRETA正则表达式模板类库
    便利的开发工具log4cpp快速使用指南
    vc/mfc/vs2005下正则表达式源代码编程/微软greta Regular Expressions
    GRETA库在VS 2005环境下的编译经验
    揭开正则表达式的神秘面纱
    greta简单使用
  • 原文地址:https://www.cnblogs.com/lesliefang/p/4521102.html
Copyright © 2011-2022 走看看