trustpilot api客户端,包括cli工具
trustpilot的Python项目详细描述
python http客户端 Trustpilot。
功能
- 扩展 `requests.Session<;http://docs.python-requests.org/en/master/api/#requests.Session>;。`_ 使用公共和私有终结点的自动身份验证初始化
- get、post、put、delete、head、options和patch方法都是公开的 在模块级
- 实现会话工厂和默认的单例会话
- 提供简单的挂钩系统
- 带有基本http命令的cli工具
开始
此客户端正在使用 Requests库。 回答是标准的 `requests.Response<;http://docs.python-requests.org/en/master/api/#requests.Response>;。`_ 物体。你可以把它当作一个工厂,也可以当作一个独立的工厂。
使用单一会话
使用内置的default session实例化全局 无障碍会话。
fromtrustpilotimportclientclient.default_session.setup(api_host="https://api.trustpilot.com",api_version="v1",api_key="YOUR_API_KEY",api_secret="YOUR_API_SECRET",username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD")response=client.get("/foo/bar")
会话的设置可以依赖于环境变量,因此
$ env TRUSTPILOT_API_HOST=foobar.com TRUSTPILOT_API_VERSION=v1 TRUSTPILOT_API_KEY=foo TRUSTPILOT_API_SECRET=bar TRUSTPILOT_USERNAME=username TRUSTPILOT_PASSWORD=password
将使用隐式default_session和 TrustpilotSession.setup方法。
fromtrustpilotimportclientclient.get("/foo/bar")
实例化您自己的会话
你可以创建任意多个会话,只要你通过它们 在你身边。
fromtrustpilotimportclientsession=client.TrustpilotSession(api_host="https://api.trustpilot.com",api_version="v1",api_key="YOUR_API_KEY",api_secret="YOUR_API_SECRET",username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD")response=session.get("/foo/bar")
异步客户端
由于版本3.0.0,您可以将async_client用于 asyncio用例。
要使用默认的async_client会话,请使用env-varsfor 设置,导入如下:
importasynciofromtrustpilotimportasync_clientloop=asyncio.get_event_loop()asyncdefget_response():response=awaitasync_client.get('/foo/bar')response_json=awaitresponse.json()loop.run_until_complete(get_response())
或者用以下命令实例化会话:
importasynciofromtrustpilotimportasync_clientloop=asyncio.get_event_loop()session=async_client.TrustpilotAsyncSession(api_host="https://api.trustpilot.com",api_version="v1",api_key="YOUR_API_KEY",api_secret="YOUR_API_SECRET",username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD")asyncdefget_response():response=awaitsession.get('/foo/bar')response_json=awaitresponse.json()loop.run_until_complete(get_response())
cli
命令行工具trustpilot_api_client与 模块。要调用它,请使用:
Usage: trustpilot_api_client [OPTIONS] COMMAND [ARGS]... Options: --host TEXT host name --version TEST api version --key TEXT api key --secret TEXT api secret --token_issuer_host TEXT token issuer host name --username TEXT Trustpilot username --password TEXT Trustpilot password -c TEXT json config file name -v, --verbose verbosity level --help Show this message and exit. Commands: create_access_token Get an access token delete Send a DELETE request get Send a GET request post Send a POST request with specified data put Send a PUT request with specified data
要使用-c选项,请提供json的文件名 格式如下:
{"TRUSTPILOT_API_HOST":"foo","TRUSTPILOT_API_VERSION":"v1","TRUSTPILOT_API_KEY":"bar","TRUSTPILOT_API_SECRET":"baz","TRUSTPILOT_USERNAME":"username","TRUSTPILOT_PASSWORD":"password"}
测试
您可以使用pytest对当前的python版本运行测试。
有关测试依赖项,请参见`setup.py<;setup.py>;`。
历史记录
0.1.0(2016-11-09)
- 在Gemfury上首次发布
0.1.1(2016-11-09)
- 更改名称
0.1.2(2016-11-09)
- 使用401重试解决问题
0.1.3(2016-11-10)
- 向setup.py添加依赖项
0.1.4(2016-11-11)
- cli工具
0.1.5(2016-11-11)
- 修复apikey url查询参数错误
0.1.6(2016-11-11)
- 介绍与api主机不同的令牌颁发者主机
0.1.7(2016-12-06)
- 在会话对象上引入context getter,默认为保持correlationid=random
1.0.0(2017-02-01)
- 作为OSS的第一个版本,内部机器的主要重构(会话对象、重试策略、CLI、测试等)
1.1.0(2017-06-12)
- 修复了日志记录,因此它不使用根日志记录程序。根据http://pythonsweetness.tumblr.com/post/67394619015/use-of-logging-package-from-within-a-library 中提到的最佳实践
- 已删除对HttpRetry的依赖项,因为它不支持Py3
2.0.0(2017-09-29)
- 已弃用:create_session已弃用,请改用trustpilot.client.default_session.setup
- 现在可以查询公共端点而无需验证
2.1.0(2017-10-05)
- 已修复cli.post&cli.put中“content_type”应为“content type”的问题
3.0.0(2018-01-18)
删除不使用!!
- 添加异步客户端
3.0.1(2018-01-18)
- 删除的指纹
- 使异步客户机在未经授权的情况下重试
4.0.0(2018-06-06)
- 放弃对Python3.3的支持
4.0.1(2018-06-06)
- 切换到实用程序方法调用的非弃用会话对象
4.0.2(2018-10-30)
- 将请求升级到2.20.0
5.0.0(2019-01-04)
- 更新到身份验证方法
5.0.1(2019-02-04)
- 修复文档格式
6.0.0(2019-02-06)
- 重新组织代码
- 添加用户代理标题
- 在异步客户机中使用异步调用获取访问令牌
6.0.3(2019-08-15)
- 添加了对客户端初始化的“API版本”参数的支持。
6.0.4(2019-08-15)
- 删除“自动部署到Travis”
6.0.5(2019-08-15)
- 允许更新版本的请求依赖项