所以我有一个路由文件看起来是这样的:如何验证Play Framework中的可选查询参数?
GET /myRes controllers.MyController.get(ids: Option[String], elems: Option[String])
一切都很好。用户可以通过做得到的东西:
/myRes
/myRes?ids=X
/myRes?elems=Y
/myRes?ids=X&elems=Y
然而,它们还可以通过执行查询的接口:
/myRes?id=X
这是有问题的,因为在这种情况下,用户得到的结果,如果同他们询问/myRes
,这几乎肯定不是他们预期的结果。这对API的开发人员造成了很多混淆/错误。有没有一种优雅的方式来捕获传递给控制器的不正确/未指定的查询参数,并返回此类查询的硬错误?
编辑:将标题更改为更具描述性的内容。我的问题基本上是验证查询参数,以捕获传递给API的任何查询参数,这些参数是无效的/正确的。
感谢您的回复。但是,这与设置所需的参数基本相同。这也适用于查询参数,但不是我想要做的。没有一个查询参数是必需的,我不想指定每个可能的查询参数组合 - 这不能超过2-3个参数。 –
我改变了标题,希望让问题更清楚。 –