Ruby on rails 澄清一些概念,用Rails 3提供RESTful Web服务

Ruby on rails 澄清一些概念,用Rails 3提供RESTful Web服务,ruby-on-rails,web-services,rest,Ruby On Rails,Web Services,Rest,我想构建一个Rails应用程序,它公开移动应用程序使用的RESTful web服务。我想创建一些可维护和可扩展的东西,但我对实现好结果的最佳实践有点困惑 首先,API版本控制。随着时间的推移,我的API将逐渐成熟,我希望尽可能使它们保持平滑。我读过这篇文章:我完全同意 我的路由策略摘录如下: /api/v1/ .. all sorts of controllers (api v1) ... /api/v2/ .. (api v2) .. /api/ .. controllers of th

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

首先,API版本控制。随着时间的推移,我的API将逐渐成熟,我希望尽可能使它们保持平滑。我读过这篇文章:我完全同意

我的路由策略摘录如下:

/api/v1/ .. all sorts of controllers (api v1) ...
/api/v2/ .. (api v2) ..
/api/    .. controllers of the latest mainstream API
作为一种开发策略,我利用了JSON数据格式,还创建了新的资源

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

最后但并非最不重要的一点是,我正在努力提高总体性能:删除不必要的机架中间件,继承ActionController::Metal并去掉ActiveResource。我应该考虑一些陷阱吗?< /P>
任何关于构建这样一个RESTful应用程序的建议都将不胜感激。

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

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

  • 首先使用简单的HTTP基本身份验证实现安全性。如果您想要更多的控制,那么引入基于令牌的身份验证,如OAUTH

  • 确保URL中的REST实体使用复数形式。因为复数适合于单个或多个条目的获取

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


  • 希望有帮助

    谢谢。你能更好地解释最后一点吗(可能用一个例子)?