用于连接到远程服务的简单API客户端。

simple-api-client的Python项目详细描述


Build Status

简单Api客户端

用于连接到远程服务的简单API客户端。在

特点

以及创建和执行基于Json的API的常用方法 请求时,此库支持以下附加功能。在

  • 添加基本和承载身份验证头的方便方法。在
  • 添加签名Cookie的方便方法。在
  • 所有请求的超时限制。在
  • 全局或按请求重试限制,用于在API请求失败时重试。在
  • 使用尽最大努力处理从API端点返回的格式错误的Json。在
  • 每个响应都保证包含一个状态代码和格式良好的解析Json数据。
    • 如果出现错误,数据中将始终包含一条错误消息。在
  • 完全支持从API请求返回二进制数据(字节)。在
  • 执行API请求时处理速率限制。可以将这些请求配置为在引发错误之前重试。在

安装

使用pipenv安装和更新

pip install -U simple-api-client

使用

简单用例

^{pr2}$

创建更具体的客户

创建此客户机是为了尽可能灵活地用作 更具体的客户端的基类。你只需要把 ApiClient类并添加任何合适的方法。在

fromflaskimportgfromflaskimportcurrent_appasappfromsimple_api_clientimportApiClientclassMyServiceClient(ApiClient):defuse_cookie_auth(self,data):name=app.config.get("COOKIE_NAME")signing_key=app.config.get("COOKIE_SIGNING_KEY")signing_key_id="trusted-service"payload={"data":data}self.add_signed_cookie(name,payload,signing_key_id,signing_key)defget_remote_resource():returnself.get("/example/endpoint")

关于安全性的说明

重要的是要理解,当客户机初始化时使用头和 Cookie,这些将在客户端的生命周期内或直到 手动取消设置。如果你不想在这两个请求之间停留, 必须采取措施重置客户端。在一个 Flask应用程序这很容易 通过将客户端分配给特殊的'g' object来实现。在

fromflaskimportgfromflaskimportcurrent_appasappfromsimple_api_clientimportApiClient@app.before_requestdefsetup_api_client():g.client=ApiClient("http://www.example.com",app.logger)

然后为了使用它,导入'g'

fromflaskimportgresponse=g.client.get("/example/endpoint")

这种模式的好处是,每次flask请求都会重置客户端,因此您不必担心客户端中的过时数据。在

发展

生成管道要求通过测试并格式化代码

确保您的机器上安装了Python3.x(使用pyenv)。在

使用pipenv安装依赖项(确保包括开发和预发布包):

pipenv install --dev --pre

配置环境:

pipenv shell &&exportPYTHONPATH="$PWD"

运行测试:

pytest

或使用日志记录:

pytest -s

或覆盖率测试:

pytest --cov=./

Black格式化代码:

black $PWD

释放

清理(.gitignored)dist文件夹(如果有):

rm -rf dist

setup.py中插入版本号并构建:

python3 setup.py sdist bdist_wheel

Push to PyPi(在提示时使用ScholarPack凭证)

python3 -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*

链接

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

推荐PyPI第三方库


热门话题
如何使用泛型在Java中生成通用方法?   java从ISO/IEC 197944图像数据文件创建图像   java实现RSA的代码有什么问题?   javascript如何将JsonArray从解析云检索到安卓?   在vaadin中上传和下载java文件   java ListView自定义适配器OnClick启动URL链接   java在一个hbox中提供两个元素的独立对齐   java用类名创建类   java从unix命令行运行jar文件   java FTP下载在文件#146处停止