加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 基于Play框架中的查询参数的路由

发布时间:2020-12-16 08:56:22 所属栏目:安全 来源:网络整理
导读:我的Web应用程序将从外部系统触发.它将调用我的应用程序的一个请求路径,但对不同类型的请求使用不同的查询参数. 其中一个参数是“动作”,它定义了要做的事情.其余的参数取决于“行动”. 所以我可以得到这样的请求参数: action=sayHellouser=Joeaction=newUs
我的Web应用程序将从外部系统触发.它将调用我的应用程序的一个请求路径,但对不同类型的请求使用不同的查询参数.

其中一个参数是“动作”,它定义了要做的事情.其余的参数取决于“行动”.

所以我可以得到这样的请求参数:

action=sayHello&user=Joe
action=newUser&name=Joe&address=xxx
action=resetPassword
...

我希望能够在路由文件中对其进行类似的编码以便播放,因此它可以执行基于查询参数的路由以及尽可能多的其他参数验证.

我所拥有的是具有大量可选参数的所有这些可能性的路由.处理它的动作以大模式匹配开始,以进行调度和参数验证.

谷歌搜索和检查SO只是弹出了大量的样本,其中params以某种方式编码在请求路径中,因此多个路径被路由到相同的操作,但我想反过来:一个路径路由到不同的操作.

我的一位同事说我们可以有一个“调度程序”操作,只需根据“操作”参数重定向.它会比当前的解决方案更加结构化,但它不会消除应该有选择地传递给下一个动作的可选参数的长列表,所以我希望有人知道一个更好的解决方案:-)

BTW调用我的应用程序的外部系统是由另一家公司开发的,我对此设计没有任何影响,因此不能改变我的应用程序触发方式.

解决方法

单个调度程序操作可能是要采用的方法,您无需在路径中指定所有可选参数.如果总是在那里采取行动,那么这是你真正需要的唯一行动.

GET  /someRoute      controller.dispatcher(action: String)

然后在您的操作方法中,您可以访问request.queryString以获取任何其他可选参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读