用于python的异步restful api使用者
finch的Python项目详细描述
finch:restful api使用者
finch是python的异步restful api消费者。finch致力于移除与使用基于http的api相关的所有样板,并提供一个高级抽象来开发api客户机。finch是在Apache 2 license下发布的,因此您可以fork、contribute和report errors and suggestions来改进它。
用法
要开始使用rest api,首先应该定义要使用的资源。对于资源建模,我们使用booby数据建模库。因此,例如,要从github.com获取回购协议,您应该定义回购协议模型和回购协议集合。
fromboobyimportModel,fieldsfromfinchimportCollectionclassRepo(Model):id=fields.Integer()name=fields.String()owner=fields.String()is_private=fields.Boolean()defparse(self,body,headers):returnparse_repo(json.loads(body))def__repr__(self):return'Repo({}/{})'.format(self.owner,self.name)classRepos(Collection):model=Repodef__init__(self,username,*args,**kwargs):self.username=usernamesuper(Repos,self).__init__(*args,**kwargs)@propertydefurl(self):return'https://api.github.com/users/{}/repos'.format(self.username)defparse(self,body,headers):return[parse_repo(r)forrinjson.loads(body)]defparse_repo(raw):return{'id':raw['id'],'name':raw['name'],'owner':raw['owner']['login'],'is_private':raw['private']}
现在,您可以获取您的公共回购(以及您的私有回购,如果您已通过身份验证)。
fromtornadoimporthttpclient,ioloopdefon_repos(repos,error):ioloop.IOLoop.instance().stop()iferror:raiseerrorforrepoinrepos:printreporepos=Repos('jaimegildesagredo',httpclient.AsyncHTTPClient())repos.all(on_repos)ioloop.IOLoop.instance().start()
安装
您可以使用pip或easy_install从pypi安装finch的最后一个稳定版本。
$ pip install finch
您还可以从github安装最新的源代码。
$ pip install -e git+git://github.com/jaimegildesagredo/finch.git#egg=finch
测试
要运行finch测试套件,您应该安装开发需求并运行nosetests。
$ pip install -r requirements-devel.txt $ nosetests tests/unit
状态
Finch正在积极开发中,目前还没有完整的文档。现在您可以阅读这个存储库中的示例和测试,它们是最新的文档。另外,我正在使用finch创建一个完整的api客户端,并创建一个好的文档。