具有灵活缓存支持的基于请求的http/rest api客户端
portale的Python项目详细描述
portale是基于http/rest api的最小请求客户端。
与其他库相比的优势:每个api都允许不同的缓存超时策略
简单示例
fromportaleimportPrefixedURLSessionsession=PrefixedURLSession('https://httpbin.org/')get_thing=session.GETRequest('anything?thing={0}',cache_ttl=10)thing=get_thing('snake')get_thing_by_name=session.GETRequest('anything?thing={name}',cache_ttl=10)thing=get_thing_by_name(name='snake')long_request=session.GETJSONRequest('delay/{n}',cache_ttl=20)result1=long_request(n=2).json()result2=long_request(n=2).json()# cached response
缓存
缓存ttl如果未在请求初始化中指定,则会话的缓存ttl将用作使用同一会话的所有api的默认缓存ttl。
fromportaleimportPrefixedURLSessionsession=PrefixedURLSession('https://httpbin.org/',cache_ttl=10)get_thing=session.GETRequest('anything?thing={0}')long_request=session.GETJSONRequest('delay/{n}')
破坏缓存
long_request.cache.bust(n=n)
访问缓存指标
print(long_request.cache.metrics)
测试
nosetests-xvtests.py