【Python进阶】无论API怎么变,SDK都可以根据URL实
分类:计算机教程

现在很多网站都搞REST API,比如新浪微博、豆瓣啥的,调用API的URL类似:

如果要写SDK,给每个URL对应的API都写一个方法,那得累死,而且,API一旦改动,SDK也要改

学习廖雪峰的定制类章节:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319098638265527beb24f7840aa97de564ccc7f20f6000

链式调用的方式实现

美洲杯赔率 1美洲杯赔率 2

  1 class Chain(object):
  2     def __init__(self, path=''):
  3         self.__path = path
  4 
  5     def __getattr__(self, item):
  6         return Chain('%s/%s' % (self.__path, item))
  7 
  8     def __call__(self, *args, **kwargs):
  9         return Chain('%s/%s' % (self.__path, *args))
 10 
 11     def __str__(self):
 12         prefix = 'http://api.server'
 13         return prefix   self.__path
 14 
 15     __repr__ = __str__
 16 
 17 print(Chain().user.friends)
 18 print(Chain().user.timeline.list)
 19 print(Chain().users('zhangsan').repos)

View Code

概念:http://www.ruanyifeng.com/blog/2014/05/restful_api.html
设计规则:美洲杯赔率,http://www.ruanyifeng.com/blog/2011/09/restful.html
Django REST framework:http://www.tuicool.com/articles/zUbymyM
Django REST framework:http://www.cnblogs.com/holbrook/archive/2012/02/19/2358704.html
Django REST framework官方教程:http://wenku.baidu.com/link?url=SJ-m2PgJn9NEZVO24Ulq_8Qsa9tpQLaQDAbfqAPJVSmW_eEuf9R-AX_ieeXyHfzGIbiaj4sRqvLuRjjXdbgzleF_h4xr5n6kORN4Vg3xT5K

这实际上可以把一个类的所有属性和方法调用全部动态化处理了,不需要任何特殊手段。
这种完全动态调用的特性有什么实际作用呢?作用就是,可以针对完全动态的情况作调用。
举个例子:
现在很多网站都搞REST API,比如新浪微博、豆瓣啥的,调用API的URL类似:
http://api.server/user/friendshttp://api.server/user/timeline/list
如果要写SDK,给每个URL对应的API都写一个方法,那得累死,而且,API一旦改动,SDK也要改。
利用完全动态的getattr,我们可以写出一个链式调用:

本文由美洲杯赔率发布于计算机教程,转载请注明出处:【Python进阶】无论API怎么变,SDK都可以根据URL实

上一篇:MySQL自增列(AUTO_INCREMENT)相关知识点总结 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • MySQL自增列(AUTO_INCREMENT)相关知识点总结
    MySQL自增列(AUTO_INCREMENT)相关知识点总结
      MySQL的自增列(AUTO_INCREMENT)和其它数据库的自增列对比,有很多特性和不同点(甚至不同存储引擎、不同版本也有一些不同的特性),让人感觉有点稍微
  • 应用canvas绘制动态时钟--每秒自动动态更新时间,
    应用canvas绘制动态时钟--每秒自动动态更新时间,
    使用canvas绘制时钟 下文是部分代码,完整代码参照: https://github.com/lemoncool/canvas-clock ,可直接下载。 首先看一下效果图:每隔一秒会动态更新时间 一、前
  • Expression经验之前言,Expression经验美洲杯赔率
    Expression经验之前言,Expression经验美洲杯赔率
    对于C#中的Expression特性想必从事C#开发的同学都不会陌生,网上和园子里都有很多的好的文章介绍。我想也没有必要再去写一些文章去介绍,科普或是从入
  • 10分钟学会前端调试利器——FireBug
    10分钟学会前端调试利器——FireBug
    10分钟学会前端调试利器——FireBug 2015/09/17 · HTML5 , JavaScript · 1评论 · 调试 原文出处: 惟吾德馨(@Allen_Bryant)     作者:惟吾德馨‘ 原文地址: http:
  • Data URI(转)
    Data URI(转)
    细说 Data URI 2015/08/27 · HTML5 · URI 原文出处: 李靖(@Barret李靖)     Data URL 早在 1995 年就被提出,那个时候有很多个版本的 Data URL Schema定义陆续出现在