基于siren的超媒体api客户端

siren-client的Python项目详细描述


python的siren客户机
====




>使用实体架构的超媒体api的通用客户机。

客户端使用siren并创建表示各种siren对象的对象。此库不提供访问
api的传输机制,但设计用于
[请求](http://docs.python-requests.org/en/latest/)会话。

身份验证由提供给siren
客户端的会话管理器管理。使用模式如下。


担心请求或url构造。您只需为
第一个对象提供一个url:

``python
import siren_client

`````

````br/>

概念可用作python构造。




基本siren属性

``python
print entity.uri
prinprint entity.class
print entity.rel
` `
` ` `



<<<<
<


/>```

从服务器上"刷新"一下"刷新"一下


``python
``python
````````br/>````python
``python
``打印实体.链接
second
second ` entity=entity.link['some-link']
```````
````使用siren操作


`````python
```` python
``````````````` python
```````````>打印实体.actions
打印实体.actions['next']

collection=entity.actions['next'](

使用"entity`
new_entity_action(name="另一个名称")"中的数据集,这将调用上述操作,但重写(或设置)名称为
"另一个名称"

```

config

n早期版本。

``python
import siren_client
entity siren_client.get('http://my_url/',rel_base='https://my_api.com/rels/')
````

-`rel廑base`如果设置为值,则该值位于rel将删除该值的任何rel
的开头:

示例:
将rel u base设置为'http://my.company/schema/'将任何
rel从api(例如'http://my.company/schema/my-link')转换为
缩短版本(在本例中为'my-link')

-'dumps'提供您自己的函数来序列化任何请求。默认情况下,siren client将检查内容类型,并根据需要自动将其序列化为json。函数将接收两个
参数、请求的内容类型和要序列化的数据。

``python
def my_dumps(content_type,data):
默认情况下,siren client将检查内容类型,并根据需要自动从json中反序列化。函数将接收两个
参数、请求的内容类型和要反序列化的内容。r/>
``python
def my_loads(content_type,data):

参数允许您更改库用于确定规范"uri"的rel。





\authentication setup

库希望有一个*requests*会话(或类似会话)来管理到服务器的连接。无论身份验证请求支持什么方法,siren客户端也支持。可以通过配置会话或对会话进行子分类来使用所需的任何其他传输配置(例如
保持活动状态、头等)。

导入httpbasicauth

session=session()
session.auth=httpbasicauth('my_username','my_password')
entity=siren_client.get('http://my.url.com/',session=session)
`````

/>#做些什么
print r.url

session=session()
session.hooks['response']=mutate_response_莫名其妙地
entity=siren_client.get('http://my.url.com/',session=session)
`````

session=session()
session.headers['x-pizza']='pepperoni'
entity=siren廑client.get('http://my.url.com/',session=session)
````

为客户端提供传输机制。它可以完全替换为执行任意操作的任意对象(例如以http以外的某种方式通信)。在
会话对象上调用的唯一方法是http动词,其中"get"用于跟踪
链接等。如果siren api在action
定义中提供了"hyperspace"方法,则库将尝试在
会话t上调用"hyperspace"方法。transport.

无论使用哪种方法从服务器获取数据,都要求响应
具有两个属性和一个方法:

-`content`这可以是您想要的任何内容。默认情况下,它尝试将
反序列化为json
-`headers`字典
-`raise_for_status()`这允许响应在出现
错误时抛出异常。




vY使用。
欢迎以错误报告和请求的形式提供帮助。





<1.0.0.dev1
--


-开发使用的初始版本。

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

推荐PyPI第三方库


热门话题
java是否可以创建一个正则表达式来查找与模式不匹配的字符串?   使用“debugUnreturnedConnectionStackTraces”进行java调试连接丢失   java如何在openLDAP中禁用/启用用户帐户?   java无法从jsoup api获取某些类   java无法从APK提取XML文件   如何在linux命令行中替换多个文件中的字符串   java学生班。如何根据单位输入打印成绩?   java有没有办法将Struts配置为绑定null而不是空字符串?   python使用OpenCV[Java]检测简单几何形状   java文件。isFile()和文件。isDirectory()返回false   java Fetch有条件地加入hibernate,还是将实体设计更改为子实体上的条件Fetch?   java lombok@Data generated setter是否对成员对象(如映射)执行深度复制?   java如何使JLabel从下一行开始   java Gradle依赖解决了配置文件的问题