一个客户端暂时停顿。
restful-client-lite的Python项目详细描述
restful客户端精简版
一个用于restfulapi的lite客户端,功能有限。
它提供:
restful_client_lite.APIClient
:令牌身份验证应用程序的客户端everestful_client_lite.contrib.AliyunApiGatewayClient
:由aliyun DataService生成的api的客户端(仅支持GET
)
WIP(在v0.1.0之前不稳定)
安装
最新版本
管道编号:
pipenv install restful_client_lite
管道:
pip install restful_client_lite
偏差
管道编号:
pipenv install -e git+https://github.com/huandzh/restful-client-lite#egg=restful-client-lite
管道:
pip install -e git+https://github.com/huandzh/restful-client-lite#egg=restful-client-lite
用法
假设我们有一个restful api,它要求在头中有Authorization:<token>
,并使用etag来控制写操作。
创建API客户端:
fromrestful_client_liteimportAPIClientapi=APIClient("<api_root>",{"token":"<token>"})
从url获取:
res_get=api.get("<url>")
发布到URL:
res_post=api.post("<url>",data={"<key>":"<value>"})
修补程序URL:
res_patch=api.patch("<url>","<etag>",data={"<key>":"<value>"})
修补程序URL(提前自动获取ETag):
res_patch=api.patch_auto_etag("<url>",data={"<key>":"<value>"})
删除网址:
res_delete=api.delete("<url>","<etag>")
删除url(提前自动获取etag):
res_delete=api.delete_auto_etag("<url>")
子类APIClient
创建自定义api客户端:
defsign(url):"""some function return signature"""...return<signedurl>classCustomAPIClient(APIClient):"""custom api client"""defauth_headers(self,f:Callable)->Callable:"""custom auth headers"""@wraps(f)defwrapper(*args,**kwargs):headers=kwargs.get("headers",{}).copy()url=args[0]headers.update({"Signature":sign(url)})kwargs["headers"]=headersreturnf(*args,**kwargs)
第三方API
阿里云API网关
AliyunApiGatewayClient
:
- 支持来自阿里云API网关API的
GET
(API可以由数据服务生成) - 处理授权标题
- 不排序url参数
fromrestful_client_lite.contrib.aliyunimportAliyunApiGatewayClientapi=AliyunApiGatewayClient('<api_root>',{"app_id":'<app_id>',"app_secret":'<app_secret>'})# make sure params in <url> are sortedres=api.get('<url>')