Rails中如何访问API请求JSON格式请求体中的参数
Rails 访问JSON请求体参数的内置方法
Rails 原生支持自动解析JSON格式的请求体,无需手动调用JSON.parse(request.body.read)处理。
核心逻辑
只要请求携带了正确的Content-Type: application/json请求头,Rails内置的参数解析中间件会自动将请求体中的JSON内容解析完成后合并到全局params哈希中,你可以和访问URL参数完全一致的方式获取对应字段:
# 直接获取请求体中的login字段,符号、字符串键都支持 params[:login] params["login"] # 同样方式获取password字段 params[:password]
额外注意事项
- 如果你的请求没有携带正确的JSON类型请求头,才需要手动读取解析请求体,手动读取后需要调用
request.body.rewind重置请求体指针,避免后续逻辑读取请求体时返回空值。 - 涉及到参数入库等操作时,依然需要遵循Rails的强参数规范做字段校验:
def user_login_params params.permit(:login, :password) end
内容的提问来源于stack exchange,提问作者Noam B.
相关产品推荐
相关产品推荐

