我继承了 2 个控制器方法(用于 GET 请求),它们接受相同的 10 个请求参数,如下所示:
class Application @Inject() (cc: ControllerComponents) extends AbstractController(cc) {
def func1(param1: String,
param2: String,
param3: String
...
param10: String
) = Action {
...
}
def func2(param1: String,
param2: String,
param3: String
...
param10: String
) = Action {
...
}
}
这些映射如下:
GET /f1 blah.blah.Application.func1(p1: String, p2: String...p10: String)
GET /f2 blah.blah.Application.func2(p1: String, p2: String...p10: String)
我喜欢避免重复。我想知道是否可以定义一个具有 10 个以请求参数命名的字段的案例类,让控制器方法接受一个案例类类型的参数,并将 Play 匹配请求参数名称与字段名称绑定并绑定值?
如果在 POST 请求正文中提交了相同的值,这很容易实现。但这不是一个选项,因为这个端点已经暴露给客户。