Rails 中的基本 API

Basic API in Rails

假设我有一个带有 returnjson 动作的 Users 控制器。假设我想创建一个 API,因此当客户端调用该方法时,它会将用户的数据 return 发送给客户端。例如:

https://www.example.com/returnjson?username&password

JavaScript 将使用 URL 发出获取请求,而 rails 将比 return JSON 格式的用户信息.我该怎么做?

提前致谢!

哦,我明白了,您只想 return 参数中请求的属性。对不起。

首先,我只想为此使用 show 操作,而不是创建新操作。 show 在语义上的目的是 return 一条记录的数据,因此它是此作业的正确操作。

您的请求参数结构不合理 - 我会像

那样构造它们

https://www.example.com/users/123?required[]=username&required[]=password

这会给你

params = {:required => ["username", "password"]}

我会这样做:

def show
  @user = User.find_by_id(params[:id])
  respond_to do |format|
    format.html #default to standard 'render the show template'
    format.js #default to standard 'render .js file'  or whatever
    format.json do 
      #filter out the ones we want
      if params[:required]
        hash = @user.attributes.slice(params[:required])
      else
        hash = @user.attributes
      end
      #this will automatically call `.to_json` on the thing we pass to it (`hash` in this case)
      render json: hash
    end
  end
end

您可以在此处添加额外的安全措施,例如限制您通过 api.

访问的字段