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‘)
时间: 2024-08-25 17:09:31

python API url 级联生成的相关文章

初识Django —Python API接口编程入门

初识Django -Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言,基于Django框架,利用MVC模型,实现后台方面的针对数据库的API开发.先了解一下互联网的WEB架构, 如上图: 互联网的WEB架构大致分为三层,web层.app层和数据库层.Web层:如apache网站服务器:app层主要是应用业务:DB指后台数据库.随着互联网的高速发展,网站访问量的增长.数

Appium===Appium+Python API(转)

Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context cu

Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874688.htm HMacMD5 加密纯 Java 实现,用于淘宝客 JS 组件 API 调用时生成 sign 的签名 另外:给大家贴一段淘宝客组件 API (JS API) 调用时,生成签名的核心代码. 另外:从事淘宝客开发的童鞋,碰到啥问题可以找我交流!!! String timestamp =

Zabbix Python API 应用实战

做监控的同学应该知道,公司IDC机房经常有上架.下架.报修和报废的服务器.如果服务器数量很多的时候很容易造成监控遗漏.    大的互联网公司把监控系统和CMDB(资产管理系统|配置管理数据库系统)集成在一起,当上架一台新机器的时候CMDB里面会记录相关的信息,Zabbix根据CMDB里面信息自动Link相关的模块,添加|删除监控.很多小的公司没有资产管理系统,但作为监控的负责人应该每天知道上架了哪些新的机器,确保能添加到Zabbix监控里面.    首先给大家说一下脚本思路:1)通过Nmap工具

[Python]从url中解析域名的几种方法

Python从url中解析域名的几种方法 从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等.通过google查到几种方法,一种是用Python中自带的模块和正则相结合来解析域名,另一种是使第三方用写好的解析模块直接解析出域名. 要解析的url urls = ["http://meiwen.me/src/index.html", "http://1000chi.com/game/index.htm

Appium+python自动化8-Appium Python API

前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context current_context(self): Returns the cur

Openstack python api 学习文档

Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack,所以上一篇写了一些使用openstack的纯api调用的方法, 但是openstack还提供了更好的python的api,只需要python的包即可,感觉更好使用. 对于compute的api,包是放在了/usr/lib/python2.7/site-packages/novaclient/目录,

spark2.x由浅入深深到底系列七之RDD python api详解一

学习spark任何技术之前,请先正确理解spark,可以参考:正确理解spark 以下对RDD的三种创建方式.单类型RDD基本的transformation api.采样Api以及pipe操作进行了python api方面的阐述 一.RDD的三种创建方式 从稳定的文件存储系统中创建RDD,比如local fileSystem或者hdfs等,如下: """ 创建RDD的方法: 1: 从一个稳定的存储系统中,比如hdfs文件, 或者本地文件系统 """

13、Selenium+python+API分类总结

Selenium+python+API分类总结 http://selenium-python.readthedocs.org/index.html 分类 方法 方法描述 客户端操作 __init__(self, host, port, browserStartCommand, browserURL) 构造函数.host:selenium server的ip:port:elenium server的port,默认为4444:browserStartCommand:浏览器类型,iexplore,fi