我已经创建了一个 Web 应用程序,现在我想构建一些 REST API 以使其可由第三方开发人员进行编程。然后,我想用一些流行的语言(JavaScript、PHP、Ruby 等)构建一些客户端库,通过避免他们手动解析每个请求的 JSON 响应,使开发人员能够舒适地使用我的服务。
我以前从未构建过 API 基础架构,所以我有以下问题。我想跟踪第三方开发人员调用的 API 方法的使用情况。每个开发人员在使用 API 之前都必须进行注册,因此我想将每个请求与注册的开发人员相关联(因此,设置一些特定的使用限制等)。
我想为每个开发人员创建一个唯一的 api 密钥,他可以在他的所有应用程序中使用它来验证请求。但后来我意识到,如果他决定使用我的 javascript 包装器,那么恶意用户可以查看客户端应用程序页面的源代码并获取他的 api 密钥。因此,我决定最好为每个应用程序创建一个唯一的 api 密钥,并与托管客户端应用程序的域相关联。因此,即使用户抓住了其他人的密钥,那么它在最初注册的域之外也是无用的。但后来我想:移动应用程序呢?如果不是从网站拨打电话会发生什么?如果没有域或 IP 地址不是静态的,我如何通过其域验证密钥?
有小费吗?
谢谢!