Uplink:最简单的Python HTTP客户端

Uplink:最简单的Python HTTP客户端

Uplink让你用最少的代码,构建一个HTTP服务的客户端。

如果你用其他库来做这件事情,比如requests,通常来说你都需要写一个样本代码,然后用一个抽象层来抽象化这个样本代码。但是使用Uplink则不用这样,你只需要使用一些装饰器和注释,就能够构建一个HTTP服务的客户端。

方法注释:静态请求处理

从本质上说,Uplink是使用方法注释来描述这个API请求所需要的特征。

下面是一个例子

Uplink:最简单的Python HTTP客户端

使用timeout注释这个类方法,这样get_repos构建的API请求就会在60s没有返回时报超时错误。

使用多个方法注释

你不仅仅可以加一个装饰器,事实上你可以加一系列装饰器

Uplink:最简单的Python HTTP客户端

给类中所有方法增加同样的注释

为了给类中所有方法增加一个同样的注释,那么你就把装饰器直接加在类上就好了,就不用在每个方法上单独添加了。

Uplink:最简单的Python HTTP客户端

上面这个例子,和下面这个略微麻烦一点的写法作用是一样的。

Uplink:最简单的Python HTTP客户端

参数注释:动态请求处理

编程中,一个函数的参数驱动了这个函数的动态行为;一个函数的输出往往依赖于其输入。使用Uplink,你可以通过函数参数来驱动请求中的动态部分,你可以通过正确地进行注释来说明请求中的动态部分。

为了介绍这个特性,在下面的get_user方法中,我们注释说明了函数参数username是一个URL参数。

Uplink:最简单的Python HTTP客户端

然后,在客户端你就可以这样调用这个方法了:

Uplink:最简单的Python HTTP客户端

这样这个方法发出的请求,其请求地址就是以"users/prkumar"结尾了。

默认使用函数参数名称

像上面的例子中,如果使用Path时不提供名称参数,Uplink会默认使用函数的参数名称作为URL参数的名称。

下面这个例子和上面讲的例子作用是等价的:

Uplink:最简单的Python HTTP客户端

使用装饰器注释参数

我们可以使用函数装饰器注释参数。这时,装饰器是从下向上匹配参数的。

例如,在下面这个例子中,注释Url对应参数commits_url,注释Path对应参数sha。

Uplink:最简单的Python HTTP客户端

使用uplink.args

还有一个办法就是使用装饰器uplink.args,uplink.args中的注释是按照顺序对应函数参数的。

Uplink:最简单的Python HTTP客户端

函数参数注释(只支持Python3)

最后,如果你使用Python3,你还可以直接在函数参数处注释。

Uplink:最简单的Python HTTP客户端

英文原文:http://uplink.readthedocs.io/en/latest/introduction.html

译者:诗书塞外