【问题标题】:Routing trouble for RESTful API - RailsRESTful API 的路由问题 - Rails
【发布时间】:2010-04-25 16:13:00
【问题描述】:

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

  1. API 端点应该是用户还是用户?最佳做法是什么?
  2. 我必须将操作添加到末尾,我希望它会被请求类型代替,因此我不必明确指定它。如何正确设置我的路线,而不必包含受保护操作的方法?

让我举几个例子:

获取表演请求 - 希望它在没有“表演”的情况下工作

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

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

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

这是我现在使用 API 的路线:

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

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

谢谢! -A

【问题讨论】:

    标签: ruby-on-rails api rest routes


    【解决方案1】:
    1. restful API 的单数与复数端点取决于您返回的模型。您的 URL 应描述“用户”资源可以有多个实例。

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多