restorm允许您与资源交互,就像它们是对象一样。

restorm的Python项目详细描述


Build Status

恢复

restorm允许您与资源交互,就像它们是对象(object)一样 关系映射),模拟整个api并合并自定义客户机逻辑。

说明

restorm构建访问restful api的方式,并允许您轻松地 访问相关资源。它试图尽可能的通用,所以它不是 根据任何特定的API或服务器端API库定制用RestORM你可以 模拟整个api并用单元中的模拟版本替换真正的客户机 测验。restorm是非常可扩展的,但是提供了许多现成的功能 让你起来跑得快。

目前,restorm在python 2.5+上工作,同时还支持python 3。

功能

  • api资源的对象关系映射(类似于django,但不依赖于 Django)。
  • 可用于您自己或第三方的灵活客户端体系结构 客户端(如OAuth)。
  • 扩展的模拟模块允许您模拟API响应,甚至 完成API。
  • Twitter和Flickr API的示例

快速启动

这是本教程的压缩版本。完整的文档可以是 找到here

创建客户机

一个可以使用json与restful api对话的典型客户机不再是:

fromrestorm.clients.jsonclientimportJSONClientclient=JSONClient(root_uri='http://www.example.com/api/')

我们取而代之的是这个客户,我们嘲笑它的预期行为。

创建一个模拟API

为了测试客户机,可以使用 MockApiClient并添加预定义的响应。

下面的mock api包含一个图书列表和一个作者列表。保留它 很简单,两个列表资源只包含一个项:

fromrestorm.clients.mockclientimportMockApiClientmock_client=MockApiClient(responses={'book/':{'GET':({'Status':200},[{'isbn':1,'title':'Dive into Python','resource_url':'http://www.example.com/api/book/1'}])},'book/1':{'GET':({'Status':200},{'isbn':1,'title':'Dive into Python','author':'http://www.example.com/api/author/1'})},'author/':{'GET':({'Status':200},[{'id':1,'name':'Mark Pilgrim','resource_url':'http://www.example.com/author/1'}])},'author/1':{'GET':({'Status':200},{'id':1,'name':'Mark Pilgrim'})}},root_uri='http://www.example.com/api/')

定义资源

我们从我们的主资源开始,Book资源作为 Resource。内部Meta类中的两个属性表示url模式 如何访问所有书籍(list)和单个书籍(item):

fromrestorm.resourceimportResourceclassBook(Resource):classMeta:list=r'^book/$'item=r'^book/(?P<isbn>\d)$'

将所有这些结合在一起

您可以访问Book资源和(创建的运行时)相关的 Author资源使用mock_client

>>>book=Book.objects.get(isbn=1,client=mock_client)# Get book with ISBN number 1.>>>book.data['title']# Get the value of the key "name".u'Dive into Python'>>>book.data['author']# Get the value of the key "author".u'http://www.example.com/api/author/1'>>>author=book.data.author# Perform a GET on the "author" resource.>>>author.data['name']u'Mark Pilgrim'

安装

restorm在pypi上,因此您可以简单地使用:

$ pip install restorm

如果您想要最新的开发版本,请从github获取代码:

$ pip install -e git+git://github.com/joeribekker/restorm.git#egg=restorm

更改

0.2

2012年12月4日

  • 修正了MockClient中弹出正确响应的错误。
  • 添加了restorm.conf.settings以存储要使用的默认客户机。
  • 添加了从MockApiClient创建开发服务器的功能。
  • 已将root_uri参数添加到Client构造函数。
  • 添加了初始XML客户端实现(alpha)。
  • 添加了初始文档。
  • 根据需要添加SimpleJSON 2.2.1或更高版本的库。

0.1

2012年11月9日

  • 在pypi上发布的初始版本。

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

推荐PyPI第三方库


热门话题
Java中ArrayList的超简单问题   Java 8在一段时间后过期   java如何创建具有用户定义维度的矩阵,并使用从上到下、从左到右的递增值填充它?   java从JDBC重启mysql   带有sqlite的java LiveData未更新UI   带有JDialog的java小程序在Mac OSX中未正确隐藏   java ActionListener无法从公共类引用数组?   java Apache Digester:NoSuchMethodException:没有这样的可访问方法   安卓中数据库中的java数据没有以正确的格式检索   java快速排序实现:使用random pivot时几乎排序   安卓 Java:高效的ArrayList过滤?   java如何在单独的文件中制作GUI程序   jasper报告如何从JSP或Java代码在JasperReport中传递参数值?