创建Rails API以供私人和公共使用

时间:2014-09-13 20:46:00

标签: ruby-on-rails api

我已经搜索过这个答案,但是找不到任何东西,需要帮助。因此,我们创建了一个带有rails的API,它为我们的Angular Web应用程序(单独的服务器)和我们的iphone应用程序提供支持目前人们通过表单登录并从api发出一个auth_token用于将来的交互,数据也使用AWS密钥保护。

现在我们想向公众开放API,但仅限于某些订阅计划,可能只是部分功能。我们希望使用类似于Pingdom的身份验证,如果正确计划的用户在其帐户中生成api令牌并使用该请求发送此令牌。这是我有点茫然的地方,因为如果我为一些通过令牌进行身份验证的用户保护API的控制器,那么这将影响那些没有用户身份的iphone和网络应用程序用户api令牌?

我无法理解私有API的概念,如果他们有api密钥,这些API可供某些用户使用。请帮忙。

1 个答案:

答案 0 :(得分:0)

将私有和公共API视为同一API的不一致兼容版本可能会有所帮助。这与引入v2 API的原理相同,后者破坏了与v1的向后兼容性,但需要支持这两个版本。

显然,您不希望内部API与外部API共享版本编号序列。但是有各种宝石可以帮助您处理版本化的API,这可能包括身份验证方法的差异。

因此,您的用户可以使用的API可以看作是可用的唯一 API。它可以有自己的版本编号系统,因此如果你决定引入公共API的v2,你可以。但是,维护该API的相同系统可以为您的“内部”API执行类似操作,确保其端点与公共端点分离,但允许您以与v1和v1相同的方式共享公共和私有实现之间的公共代码。 v2 API可能会共享一些代码但也会有差异。

相关问题