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

restorm-setuptools的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-setuptools

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

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

更改

0.3.1

  • 修正了十进制序列化错误。改进的restify方法使用资源客户端或jsonclient来避免十进制错误。

0.3.0

  • 修复PYPI错误

0.3(β)

  • 消除分布相关性

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更改WSO2 IS证书会导致登录失败   安卓 Java随机行读取   JavaJComboBox留下了一条线索   用于嵌套对象的java Jasper报告   java动态生成Id值时,如何检索复选框的值   “拼接(a,b,…”的Java等价方法在JavaScript方法中   java在有子面板的jPanel上绘图   java生成时,在包“安卓”中找不到属性“text color”的资源标识符   java如何使用maven插件正确地构建Spring引导远jar?   readUTF中的java EOFEException   在Java中,按星期一到星期天进行排序   java MultiFormatReader无法读取qr,尽管qr是可扫描的   替换java字符串中未知数量的值   java将MySQL连接到Apache nutch   Java从3个不同的枚举中获取随机值   java我需要将多个JRadioButtongGroup和一个jcombobox连接到一个jbutton   java Android sqlite异常。无法实例化活动   如何使用单流创建Map<String,List<Long>>Java8?