RESTful API的路由故障 - Rails

时间:2010-04-25 16:13:01

标签: ruby-on-rails api rest routes

我正在构建一个我已经工作了一段时间的Web应用程序API。我已经开始使用User模型了。 API的用户部分将允许远程客户端a)检索用户数据,b)更新用户信息和c)创建新用户。我已经完成了所有这些工作,但它似乎没有正确设置。以下是我的问题:

  1. API端点应该是用户还是用户?什么是最佳做法?
  2. 我必须将操作添加到最后,我希望通过请求类型将其添加,因此我不必明确指定它。如何正确设置路由,以便不必包含受保护操作的方法?
  3. 让我举几个例子:

    获取节目请求 - 希望它在没有“show”的情况下工作

    提出更新请求 - 希望它在没有“更新”的情况下工作

    创建 - 使用或不使用“创建”工作,这是我想要的所有这些操作

    如何构建不需要操作名称的路由?这不是RESTful API的常用方法吗?

    以下是我的API路线:

    map.namespace :api do |route|
      route.resources :users
      route.resources :weight
    end
    

    我正在使用在curl中处理http auth的restful身份验证。关于路线问题的指导和关于单数与复数的最佳实践将非常有用。

    谢谢! -A

1 个答案:

答案 0 :(得分:1)

  1. restful API的Singular与多个端点取决于您返回的模型。您的URL应描述可能存在多个“用户”资源实例。

  2. 您的路线设置正确。 GET和PUT请求应包括端点中用户的ID,即

    curl -u rmbruno:blah http://app.local/api/users/1

  3. 请参阅此答案,了解为什么rails为CRUD操作创建这些“便利”URL的概述: Rails - Redundant RESTFUL Actions for map.resources? (new, create)