0

我想构建一个 Rails 应用程序来公开移动应用程序使用的 RESTful Web 服务。我想创建一些可维护和可扩展的东西,但我对实现良好结果的最佳实践有点困惑。

首先,API 版本控制。随着时间的推移,我的 API 会越来越多,我希望让它们尽可能流畅。我读过这篇文章:API 版本控制的最佳实践?我完全同意。

我的路由策略的摘录是:

/api/v1/ .. all sorts of controllers (api v1) ...
/api/v2/ .. (api v2) ..
/api/    .. controllers of the latest mainstream API

作为一种开发策略,我利用JSON 数据格式,同时创建新资源。

我担心的另一个重要方面是安全性:我无法从移动 APP 生成真实性令牌,所以我想知道如何保护 Rails API 控制器。我应该使用标准 HTTP 身份验证吗?有没有更好的方法来做到这一点?

最后但同样重要的是,我正在尝试提高整体性能:删除不必要的机架中间件,从 ActionController::Metal 继承并摆脱 ActiveResource。我应该考虑一些陷阱吗?

任何构建此类 RESTful 应用程序的建议将不胜感激。

4

1 回答 1

1

您似乎走在了正确的轨道上,我想提几件事:

  1. 确定输入和输出格式。JSON 是更快的选择,但 XML 提供模式验证和更多控制。根据您的需要进行选择。

  2. 使用简单的 HTTP Basic 身份验证来确保安全性。如果您想要更多控制权,则引入基于令牌的身份验证,例如 OAUTH。

  3. 确保在 URL 中使用复数形式的 REST 实体。由于复数对单个或多个条目的获取有好处。

  4. 决定 REST API 的同步和异步特性。如果一个操作花费的时间太长,那么让它异步。作为 202 Accepted 响应的一部分,将 ref URL 返回给用户进行轮询。

希望能帮助到你!

于 2013-06-02T17:21:57.250 回答