访问simpl games api的python客户端
simpl-client的Python项目详细描述
用于异步访问simple games api的python客户端。
用法:
from simpl_client.async import GamesAPIClient async_games_client = GamesAPIClient(url=SIMPL_GAMES_URL, auth=SIMPL_GAMES_AUTH)
要同步访问Simple Games API,请使用:
from simpl_client.sync import GamesAPIClient sync_games_client = GamesAPIClient(url=SIMPL_GAMES_URL, auth=SIMPL_GAMES_AUTH)
安装
pip install simpl-client
端点
端点在主实例上可用作属性。
.all()
检索所有资源(本质上是端点上的简单GET):
async_games_client.runusers.all() # GET /runusers/
.filter(**kwargs)用kwargs作为查询字符串值调用GET:
async_games_client.runusers.filter(run=12, world=1) # GET /runusers/?run=12&world=1
.get(**kwargs)
.filter()的特例。
如果kwargs包含id、pk、slug或username,则该值将 按顺序在url路径中使用。
否则,它调用一个GET,将kwargs作为查询字符串值。
如果返回的列表为空,则将引发ResourceNotFound。
如果返回的列表包含超过1个资源,将引发MultipleResourcesFound
注意.get()将返回Resource,而不是Resources的列表
async_games_client.runusers.filter(run=12, world=1) # GET /runusers/?run=12&world=1 async_games_client.runusers.filter(id=12) # GET /runusers/12/ async_games_client.users.filter(username='alice') # GET /users/alice/
.create(payload)
将产生一个POST,并以payload(adict)作为请求的主体, 返回新的Resource:
runuser = async_games_client.runusers.create({'run': 12, 'world': 1}) # POST /runusers/
.get_or_create(defaults, **kwargs)
发出获取资源的get。如果找不到资源,则发布帖子 创建资源。
# Assuming it doesn’t exist run = myclient.run.get_or_update(game=12, defaults={‘active’: True}) # GET /runs/?game=12, then POST /runs/
.create_or_update(payload)
如果payload包含名为'id'的密钥,则将发出PUT,否则 它将调用.create:
runuser = async_games_client.runusers.create_or_update({'id': 1234, 'world': 1}) # PUT /runusers/1234/
.delete(pk)
将发出DELETE,并将使用pk作为url的一部分:
async_games_client.runusers.delete(24) # DELETE /runusers/24/
资源
所有终结点方法(除了.delete())都返回 Resource或Resources的列表。
Resource只是dict的包装类,在这里可以访问键 作为财产。
另外,Resources有一个名为.payload的特殊属性,它 包含从服务器接收的原始负载。
Resources有以下方法:
Resource.delete()将产生一个DELETE,其中Resource.id为 url的par:
runuser = async_games_client.runusers.create({'run': 12, 'world': 1}) # POST /runusers/ runuser.delete() # DELETE /runuser/345/ -- the ID 345 was returned by the server in the previous response
Resource.save()将产生一个PUT,其中Resource.id为 url的par:
runuser = async_games_client.runusers.create({'run': 12, 'world': 1}) # POST /runusers/ runuser.run = 13 runuser.save() # PUT /runuser/345/
批量请求
async_games_client.bulk.results.create([...], return_ids=False) async_games_client.bulk.results.delete(**lookup)
详细路线
async_games_client.scenario(id=123).rewind()
设置开发环境
git clone git@github.com:simplworld/simpl-client.git cd simpl-client mkvirtualenv simpl-client pip install -e .
测试
python setup.py test
运行测试需要安装libmagic。
在OSX上,只需运行^{TT49}$。
许可证
版权所有©2018宾夕法尼亚大学沃顿商学院
此程序是免费软件;您可以重新分发它和/或 根据GNU通用公共许可条款修改 由自由软件基金会出版;或者是第2版 或(由您选择)任何更高版本。
这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU通用公共许可证了解更多详细信息。