目录api客户端的python通用代码。

directory-client-core的Python项目详细描述


目录客户端核心

code-climate-imagecircle-ci-imagecodecov-imagepypi-imagesemver-image

目录客户端核心。

目录api客户端的通用代码。

要求

安装

pip install directory-client-core

用法

fromdirectory_client_core.baseimportAbstractAPIClientclassMyAPIClient(AbstractAPIClient):version=1# passed as a header in all requestsdefget_something(self):returnself.get(...)defcreate_sometime(self):returnself.post(...)client=MyAPIClient(base_url='https://example.com/',api_key='test',sender_id='test-sender-id',timeout=2,)response=client.get_something()

缓存

decoratordirectory_client_core.helpers.fallback可用于缓存来自远程服务器的响应,如果远程服务器不返回最新的实时内容(可能超时,可能服务器已关闭),则允许稍后使用缓存的内容。这个decorator还保存了etag响应头,以便以后在请求和304(未修改)响应中公开它们,并提供已经缓存的内容。

# settings.py
DIRECTORY_CLIENT_CORE_CACHE_EXPIRE_SECONDS = 60 * 60 * 24 * 30  # 30 days

# client.py

from django.core.cache import caches

from directory_client_core import helpers
from directory_client_core.base import AbstractAPIClient


class APIClient(AbstractAPIClient):
    version = 1

    @helpers.fallback(cache=caches['fallback'])
    def get(self, *args, **kwargs):
        return super().get(*args, **kwargs)

    def retrieve(self):
        return self.get(url='/some/path/')

当发生缓存事件时,fallback创建日志项。为了减少噪音,可以在“设置”中设置DIRECTORY_CLIENT_CORE_CACHE_LOG_THROTTLING_SECONDS。这将导致每段时间只创建一次日志事件。默认情况下,这意味着每24小时显示一次“缓存命中url x”(对于给定的url)。

开发

$ git clone https://github.com/uktrade/directory-client-core
$ cd directory-client-core
$ make test_requirements

发布到pypi

包应该在合并到主服务器时发布到pypi。如果您需要在本地执行此操作,请从rattic获取凭据并将环境变量添加到主机:

Setting
DIRECTORY_PYPI_USERNAME
DIRECTORY_PYPI_PASSWORD

然后运行以下命令:

make publish

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

推荐PyPI第三方库


热门话题
在Android应用程序中处理新活动时出现java NullPointerException   从PSV文件读取Java   在JavaSwing中将方法从一个类传递到另一个类   带有MongoDB错误的java Vertx ClassNotFoundException:com。mongodb。联系溪流工厂   在java中替换2D数组中的数字?   java Avro方案空布尔和双整数布尔的写并集   java导入组织。neo4j无法解决?   从另一个获取变量。使用反射的java文件   Java:以格式化字符串的形式返回具有非常不同的条目长度的2D数组   java客户端应用程序正在从IBMMQ接收不同格式的消息体   java在我的主循环中的步骤有问题   java如何正确安装来自sslforfree的证书。tomcat服务器上的com   java RecyclerView变更单永久   java如何获得屏幕的精确中间位置,即使调整了大小