我应该结束控制器的动作一个问题,就是在请求中发现的瞬间?

我想知道什么是最好的做法是这种类型的情况:

我有一个客户,使一个POST给客户一个程序在我的web应用程序的/登记注册服务。 这个请求可以包括N个节目为客户要注册到,例如:

{ customer_id: 123, program_ids: [ 1, 2, 3 ] }

现在,这些程序可能无法为用户与他们登记,也就是说,它们是关闭的。

我是在服务器上为这种情况在想什么,我应该用我的控制器的请求验证码?

我想,我的选择是:

  1. 允许控制器犯任何有效的程序,因为它经过数组中的程序,客户可以使用到数据库注册,然后,上面写着一些东西的工作,但不是万能的错误响应返回给客户端。
  2. 首先验证请求,并确保所有的程序都可以为客​​户进行登记。 只要一个坏的被发现,控制器应停止运行并用错误的请求响应返回给客户端。

最后,如​​果我应该选择2走了,我怎么停止控制器的方法处理一切,只是一个糟糕的请求?

--------------解决方案-------------

在我看来,选项1会导致用户头痛的最少。 从用户的角度想想吧:这是特别讨厌的是一个应用程序,检查多个选项,然后收到一个错误,因为我的选择之一,是由于某种原因失效或其他以防止所有其他有效措施,从穿通。

就个人而言,我认为这是最好让任何行动是有效的穿过去,如果事情失败了,防不胜防,在一个单独的数组(萨姆提到的),然后给用户一个通知,带状或东西说“嘿,我为您申请这些程序,但我无法您注册所有。点击这里获取更多信息“,然后也许有一个模式弹出它会告诉哪些失败的用户出于什么原因。

  1. 如果无效的数据可能来自一个诚实的错误去与方案一:执行什么可以被执行,然后显示一个错误消息。
  2. 如果无效数据来自恶意行为(参数伪造等)去第二个选项。 停止处理在控制器的方法,一切都只是产生一个错误,你可以选择带有处理rescue_from

我没有这样做,而是将一些移动开发很快这样做,这是我计划如何照顾它:

如果你正在处理来自移动应用或诸如此类的东西多交的条目,我认为做的最好的事情就是选择2,并创建两个散列/阵列一次成功一次失败。

然后你就可以返回JSON或任何你需要返回到不同的服务有两个阵列,过去了,一次失败。

这两个选项之间的选择,你应该现在回落到用户需求和用户体验,而不是技术因素。 它会更好该服务的用户可以在你所想的情况下被部分注册,或者是更重要的是,所有的注册同时完成?

在技​​术实施方面,对于第二种情况,你可能想看看这样的事情自定义的验证和嵌套的属性。

分类:Ruby on Rails的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.606 (s). 10 q(s)