the*_*eva 1 json ruby-on-rails
我使用Rails作为API服务器,我想知道为什么发送到服务器的数据需要嵌套.这似乎是定义params的首选方式:
def user_params
params.require(:user).permit(:first_name, :last_name, :password, :username, :email)
end
Run Code Online (Sandbox Code Playgroud)
这将是发送到创建路由的相应JSON:
{
"user": {
"username": "lorem",
"first_name": "ipsum",
"last_name": "dolor",
"password": "sit",
"email": "amet"
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这是发布数据的首选方式?为什么JSON不能:
{
"username": "lorem",
"first_name": "ipsum",
"last_name": "dolor",
"password": "sit",
"email": "amet"
}
Run Code Online (Sandbox Code Playgroud)
这些不是在为您创建资源时发送的唯一参数,其他参数是:
utf8 有价值的 ?authenticity_token 用随机字符串commit有价值的Save或Update因此逻辑很明显:Rails将所有用户归属参数分组到user密钥内,因此,它更容易阅读,更容易被代码解释,并且更容易将相关参数列入白名单.
不仅如此,有时你会尝试通过一个请求创建多个资源,比如用户有很多书,所以你想创建一个用户,同时创建书籍 - 这就是所谓的嵌套资源,在这种情况下,它会是这样的:
{
"user":
{
"username": "john_don",
"books":
{
"0":
{
"author_id": 1
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望你明白这个主意.
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |