每个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())

若您检查所有代理的输出,当它达到限制时,您可以看到代理的更改。

这个图书馆不是什么新鲜事物

您可以在那里找到许多库,例如UplinkHammock和更多的库


安装

库在pypi上可用,因此只需运行

pip install anyapi

要了解有关anyapi的更多信息,请检查wiki page

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

推荐PyPI第三方库


热门话题
java在JSP中添加自定义隐式对象   java MasterMindResource泄漏?   不同的c#java结果加密   java为什么安卓 studio显示“constraintlayout中缺少约束”错误?   java Make Logback将日志打印到文件中   java如何在Google应用程序引擎中设置日期时间?   jeditorpane如何阻止java HTMLEditorKit自动关闭我的标记   返回到Activity onCreate()时,不会调用java函数   java为什么我在这个对象上得到一个NullPointerException?   在java中,如何使用包含数组的参数调用图形方法?   java如何在Play framework 2应用程序中存储Akka参与者列表?   ssh使用java将文件从一个solaris 9复制到另一个solaris 9   网络Java服务器正在等待客户端响应   java Spring mvc从formBackingObject()重定向到页面   java Spark:JavaRDD<Tuple2>到javapairdd<>   java如何动态调用基类中由字符串值指定的子类方法?