1

使用下面的示例,我希望所有service请求(以 app/service 开头的路由)都由同一个控制器处理。这可以使用 Java Play 吗?

app/service/one
app/service/two/:param

然后控制器将检查路由的其余部分并相应地处理请求。

编辑1:routes目标是确保每次service需要添加新的类型路由时我都不必更新文件。所以理想情况下,我service在路由文件中只有一个路由来处理所有以service.

4

1 回答 1

1

是的,为什么不?

app/service/one             controllers.Clients.one()
app/service/two/:param      controllers.Clients.two(param: String)

或者

app/service/one             controllers.Clients.path(path = "one")
app/service/two/:param      controllers.Clients.path(path = "two", param: String)

或者

app/service/:cat             controllers.Clients.path(cat = "one")
app/service/:cat/:param      controllers.Clients.path(cat: String, param: String)

或...查看https://www.playframework.com/documentation/2.6.x/JavaRouting

编辑 1

类似于:

app/service/*path            controllers.Controller.handle(path)

请在此处阅读详细信息: https ://www.playframework.com/documentation/2.6.x/JavaRouting#Dynamic-parts-spanning-several-/

注意力

请注意,跨越多个 / 的动态部分不会由路由器解码或由反向路由器编码。您有责任像验证任何用户输入一样验证原始 URI 段。反向路由器只是进行字符串连接,因此您需要确保生成的路径有效,并且不包含例如多个前导斜杠或非 ASCII 字符。

于 2018-01-12T12:53:54.523 回答