用于python的异步restful api使用者

finch的Python项目详细描述


finch:restful api使用者

https://secure.travis-ci.org/jaimegildesagredo/finch.png?branch=master

finch是python的异步restful api消费者。finch致力于移除与使用基于http的api相关的所有样板,并提供一个高级抽象来开发api客户机。finch是在Apache 2 license下发布的,因此您可以forkcontributereport 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客户端,并创建一个好的文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在OSGi felix scr注释中将运行时参数传递给服务   java如何按字母顺序将对象插入ArrayList?   在Netbeans中调试Java   java从json文件中获取不同的照片   通过迭代和打印将java插入2个哈希表的运行时间   java如何替换JUnit 5中的WireMock@Rule注释?   shell在javajsch程序中使用'been'命令访问受限目录   java RMI是什么类型的?   javajooq别名构造   java如何通过在testNG中创建对象来调用测试方法   java下载从安卓 URL加载到imageview中的图像   从java运行bat文件   带有客户端证书的java嵌入式Jetty   java Ajax将JSON数组发送到servlet   创建数据并将数据添加到SQLite数据库时发生java错误   添加CV的javascript HRMS项目过程   java AspectJ加载时编织不起作用   java动态更改(使用JMX)正在监视的文件夹中的新文件   java岛数迭代矩阵并将节点标记为已访问