我正在开发一个PHP REST API。我想需要一个用户密钥来访问API。我不知道如何做到这一点,我只是发出一个密钥,让他们在POST
或GET
上发送每个API请求吗?如果可以的话,请帮我用最简单的术语解释一下,我知道这是很多人想做的事情,它让很多人困惑,不仅仅是我自己。
我也希望能够限制使用,我正在考虑将每个命中存储在MySQL数据库或内存中的东西。我刚刚在Github API请求的头部看到了这个X-RateLimi-Limit 5000
和X-RateLimi-Remaining 4996
的数量每击中一次减少1,这是某种内置限制器吗?
只需要求客户注册您的网站,在你的CLIENTS表中创建一条记录,给他们一个唯一的,不容易猜到的id然后,每个api访问都需要在请求中包含该id,无论是在GET或POST头中。
验证每个请求,如果id不存在或无效,返回错误代码。
对于速率限制,您是正确的,您需要有一个单独的表来存储每个客户端的请求计数,然后使用X-RateLimit计数器生成这些响应头。
这并不难,真的。
我为我的项目写了一个API,欢迎您查看源代码,它在API文件夹中,在这里https://github.com/snytkine/LampCMS/tree/master/lib/Lampcms/Api/
和API调用的入口点是这个https://github.com/snytkine/LampCMS/blob/master/www/api/api.php
添加新应用的url为:http://support.lampcms.com/index.php?a=editapp