每个api的api包装器
SmoothA的Python项目详细描述
我们需要的任何API的叉子
任何API
anyapi是我为自己开发的一个库,它拥有更好的代码,而不是将url放在我使用动态方法调用访问端点的任何地方。
功能
- 使用动态方法调用有更好看的代码
- 过滤器帮助您修改请求、引发错误或记录请求,而不是在任何地方编写函数。
- 根据您为每个路径指定的速率限制自动更改代理
示例
向https://httpbin.org/anything/endpoint发出get请求
fromanyapiimportAnyAPIbase_url='https://httpbin.org'api=AnyAPI(base_url)api.anything.endpoint.GET()
正如你所看到的,圆点被假装成斜线,最后你应该把圆点和http方法用大写字母表示。
在每个请求之前设置标题
importdatetimefromanyapiimportAnyAPIdefset_date_as_header(kwargs):now=datetime.datetime.now()kwargs['headers'].update({'date':now.strftime('%B %d %Y')})returnkwargsapi=AnyAPI('https://httpbin.org')api._filter_request.append(set_date_as_header)print(api.anything.endpoint.GET().json())# output{'args':{},'data':'','files':{},'form':{},'headers':{'Accept-Encoding':'identity','Connection':'close','Date':'January 16 2019','Host':'httpbin.org'},'json':None,'method':'GET','origin':'XX.XX.XX.XX','url':'https://httpbin.org/anything/endpoint'}
如您所见,filter按预期工作并设置了Date
头。
在达到速率限制后自动更改代理
fromanyapiimportAnyAPIproxy_configuration={'default':proxy0,'proxies':[proxy0,proxy1,proxy2,....],# don't forget to add default proxy!'paths':{'/anything':rate_limit0,'/anything/endpoint':rate_limit1}}api=AnyAPI('https://httpbin.org',proxy_configuration=proxy_configuration)foriinrange(10):print(api.anything.endpoint.GET().json())
若您检查所有代理的输出,当它达到限制时,您可以看到代理的更改。
这个图书馆不是什么新鲜事物
您可以在那里找到许多库,例如Uplink、Hammock和更多的库
安装
库在pypi上可用,因此只需运行
pip install anyapi