跳转到主要内容

Fluidinfo的RESTful API的轻量级包装器

项目描述

关于

这是Fluidinfo RESTful API之上的一个非常轻量级的包装器。Fluidinfo是一个开放可写的物联网平台。更多关于Fluidinfo的信息可以在这里找到

http://fluidinfo.com/

RESTful API在这里描述

http://api.fluidinfo.com/

最初基于Seo Sanghyeon在此处的工作

http://bitbucket.org/sanxiyn/fluidfs

此模块由Nicholas Tollervey(http://ntoll.org)提取、扩展,并添加了单元测试

使用方法

一个快速示例是一个很好的介绍

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import fluidinfo
>>> fluidinfo.instance
'https://fluiddb.fluidinfo.com'
>>> fluidinfo.login('username', 'password')
>>> fluidinfo.call('GET', '/users/test')
({'status': '200', 'content-length': '62',
'content-location': 'https://fluiddb.fluidinfo.com/users/test',
'server': 'nginx/0.7.65', 'connection': 'keep-alive',
'cache-control': 'no-cache', 'date': 'Fri, 03 Dec 2010 17:07:34 GMT',
'content-type': 'application/json'}, {u'name': u'test',
u'id': u'8cc64c7d-a155-4246-ab2b-564f87fd9222'})

只需导入fluidinfo即可开始。fluidinfo.instance变量指示模块正在使用哪个Fluidinfo实例(默认为主实例)。请使用fluidinfo.MAIN和fluidinfo.SANDBOX“常量”来更改实例

>>> fluidinfo.SANDBOX
'https://sandbox.fluidinfo.com'
>>> fluidinfo.instance = fluiddb.SANDBOX
>>> fluidinfo.MAIN
'https://fluiddb.fluidinfo.com'
>>> fluidinfo.instance = fluiddb.MAIN

使用登录和注销函数进行登录和注销(你期望什么?..?)

>>> fluidinfo.login('username', 'password')
>>> fluidinfo.logout()

fluidinfo模块提供的最重要函数是call()。你必须提供至少HTTP方法和路径作为前两个参数

>>> fluidinfo.call('GET', '/users/test')
({'status': '200', 'content-length': '62',
'content-location': 'https://fluiddb.fluidinfo.com/users/test',
'server': 'nginx/0.7.65', 'connection': 'keep-alive',
'cache-control': 'no-cache', 'date': 'Fri, 03 Dec 2010 17:07:34 GMT',
'content-type': 'application/json'}, {u'name': u'test',
u'id': u'8cc64c7d-a155-4246-ab2b-564f87fd9222'})

注意call()返回包含两个元素的元组

  • 头部字典

  • 响应内容(如果有)

通常这样做会更好

>>> headers, content = fluidinfo.call('GET', '/users/test')

也可以将路径作为路径元素列表发送

>>> headers, content = fluidinfo.call('GET', ['about','yes/no','test','foo'])

这将确保即使元素中包含像斜杠‘/’这样的问题字符,每个元素也会被正确地进行百分编码(对于能够使用基于“about”的API至关重要)。

如果API涉及向Fluidinfo发送json数据,只需发送相应的Python字典对象,fluidinfo.py会为您适当地进行json序列化。

>>> headers, content = fluidinfo.call('POST', '/objects', body={'about': 'an-example'})

如果body参数不是Python字典,那么您只能对对象进行PUT操作以放置标签-值。在这种情况下,可以设置传递给body的值的MIME类型。

>>> headers, content = fluidinfo.call('PUT', '/about/an-example/test/foo', body='<html><body>Hello, World!</body></html>', mime='text/html')

要发送URI参数,只需将它们作为参数附加到call()方法中。

>>> headers, content = fluidinfo.call('GET', '/permissions/namespaces/test', action='create')

"action = 'create'"参数将被转换为附加到发送到Fluidinfo的URL末尾的"?action=create"。

此外,如果您想向Fluidinfo发送一些自定义头信息(用于测试目的),则可以通过custom_headers参数作为字典提供它们。

>>> headers, content = fluidinfo.call('GET', '/users/test', custom_headers={'Origin': 'http://foo.com'})

最后,如果您想通过/values端点发送查询,则可以通过tags参数提供您想要返回的值的标签列表。

>>> headers, content = fluidinfo.call('GET', '/values', tags=['fluiddb/about', 'twitter.com/users/screen_name'], query='has ntoll/met')

欢迎反馈!

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

fluidinfo.py-1.2.0.zip (10.6 kB 查看哈希)

上传时间 源代码

fluidinfo.py-1.2.0.tar.gz (5.2 kB 查看哈希)

上传时间 源代码

支持者