Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails restfulapi-Rails的路由问题_Ruby On Rails_Api_Rest_Routes - Fatal编程技术网

Ruby on rails restfulapi-Rails的路由问题

Ruby on rails restfulapi-Rails的路由问题,ruby-on-rails,api,rest,routes,Ruby On Rails,Api,Rest,Routes,我正在为我已经工作了一段时间的web应用构建一个API。我从用户模型开始。API的用户部分将允许远程客户端a)检索用户数据,b)更新用户信息和c)创建新用户。我已经让所有这些工作,但它似乎没有正确的设置。以下是我的问题: API端点应该是用户还是用户?最佳做法是什么 我必须将操作添加到末尾,我希望它会被请求类型接收,因此我不必显式地指定它。如何正确设置路由,使其不必包含受保护操作的方法 让我举几个例子: 获取显示请求-希望它在没有“显示”的情况下工作 卷曲-u rmbruno:废话 放置更新

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

  • API端点应该是用户还是用户?最佳做法是什么
  • 我必须将操作添加到末尾,我希望它会被请求类型接收,因此我不必显式地指定它。如何正确设置路由,使其不必包含受保护操作的方法
  • 让我举几个例子:

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

    • 卷曲-u rmbruno:废话
    放置更新请求-希望它在没有“更新”的情况下工作

    • curl-X put-F'user[forum_notifications]=true'-u-rmbruno:blah
    创建-使用或不使用“创建”都可以,我希望所有这些操作都使用“创建”

    • curl-X post-F'用户[登录]=mamafatta'-F'用户[电子邮件]=zzz@zzz.com'-F'用户[密码]=12345678'
    如何构造不需要操作名称的路由?这不是RESTful API的常见方式吗

    下面是我现在的API路线:

    map.namespace :api do |route|
      route.resources :users
      route.resources :weight
    end
    
    我使用的是restful身份验证,它在curl中处理http身份验证。关于单数和复数的路线问题和最佳实践的任何指导都会非常有用

    谢谢! -A

  • restful API的单端点与多端点取决于返回的模型。您的URL应该描述“用户”资源可以有多个实例

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

    卷曲-u rmbruno:废话

  • 有关rails为什么为CRUD操作创建这些“方便”URL的概述,请参见此答案: