Python 净化面向公众的API的最佳实践?

Python 净化面向公众的API的最佳实践?,python,postgresql,nginx,memcached,pyramid,Python,Postgresql,Nginx,Memcached,Pyramid,作为我们服务的一部分,我们正在构建公开可用的API,允许用户在我们的平台上执行简单任务(主要用于自动化目的)(如评论、结束已完成的任务和创建新任务) API基于HTTPS,需要以调用/登录的形式使用您的登录名和密码进行授权,以接收令牌(可在您的配置文件中对其进行解密)。如果重要的话,我们使用pyramid、postgresql和nginx 这是我的第一个此类项目,我想知道我应该如何确保这件事不消耗我们所有的传输或处理能力(其中一些API函数相当重)。 我想在一个例子中思考一下,在这个例子中,有人

作为我们服务的一部分,我们正在构建公开可用的API,允许用户在我们的平台上执行简单任务(主要用于自动化目的)(如评论、结束已完成的任务和创建新任务)

API基于HTTPS,需要以调用/登录的形式使用您的登录名和密码进行授权,以接收令牌(可在您的配置文件中对其进行解密)。如果重要的话,我们使用pyramid、postgresql和nginx

这是我的第一个此类项目,我想知道我应该如何确保这件事不消耗我们所有的传输或处理能力(其中一些API函数相当重)。 我想在一个例子中思考一下,在这个例子中,有人在他的脚本(使用我们的API)中犯了一个小错误,并且它会在同一个任务下每秒发布一次注释(或者列出此任务中的所有注释)。两天

如果我强制所有的读取通过缓存(有效,例如,在接下来的10秒钟内),这样它会攻击我们的memcached服务器而不是postgres库-这足以解决这个问题(这样其他用户就不会受到影响)还是愚蠢

如果我检查某种计时器并在进行另一次写入之前等待至少5秒(两次写入之间间隔5秒),这样可以吗?或者我只是通过计时器检查来杀死我们的服务器


我想这更多的是一个关于净化公共API的最佳实践的问题,这样它就不会咬到它的创建者了。你是怎么做到的?

你要找的是。如果不了解API是如何编写的,我无法就如何实现它向您提供具体建议,但您最好的办法是对API用户进行评级限制,这样他们就不会对您服务的其他用户产生负面影响。

谢谢,这个术语是我需要的关键-我只是在谷歌上搜索错了。现在我找到了一些关于Twitter API速率限制的文章,听起来非常合理。