Rails API:如何标准化JSON响应?

时间:2014-05-21 15:54:47

标签: ruby-on-rails

现在,成功调用我的Rails API后端后,我可能会执行以下任一操作...

render json: {user_id: @user.id, token: token}

render json: {status: :success}

如果结果不成功,我可能会做类似

的事情
render json: {status: :failure, error: "The email or password entered is not correct."}

我的问题是......什么是标准化的最好方法。

如果我的iOS应用程序搜索dict [@"错误"]的json字典值,它并不总能找到它。无论成功与否,每一条渲染信息都应该......具有“状态”状态。密钥或错误'关键或两者兼而有之。

或者前端处理这个问题更好,如果dict [@"错误"] / dict [@" status"]碰巧不存在......然后它知道后端没有发生错误,否则就会这么说了吗?

2 个答案:

答案 0 :(得分:0)

我在如何标准化JSON响应方面遇到了类似的问题。

默认情况下,Rails从帖子模型中生成这种JSON,

帖子:[ {   id:22198,   标题:“使用GitHub页面托管您的网站”,   日期:“2013-08-16 09:30:20”, }, {   id:22196,   标题:“在Ruby on Rails上运行测试 - 树屋快速提示”,   日期:“2013-08-15 14:30:48”, } ]

但有没有标准可以为iPhone APP提供Rails API?

iOS开发人员期望看到的标准或典型的成功/失败响应格式是什么?

答案 1 :(得分:0)

您呈现回复的方式很好。在您的客户端,它应该是关于正确处理HTTP状态代码的全部内容。

render status: :ok - >应返回HTTP状态代码200,这意味着成功请求。然后您的客户端(iphone应用程序)确实知道,通过成功请求,您将获得用户ID和令牌。

render status: :bad_request - >应该返回HTTP状态代码400,这意味着不成功的请求,然后您的客户端将知道发生了错误,并根据您的标准,他可以查找json响应的错误字段

相关问题