我想构建一个 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 应用程序的建议将不胜感激。