2

我有一条类似于以下在 HTTP4K 中运行良好的路线。然而,不得不重复调用"/" bind很烦人。我一直在寻找一种更简单的方式来表达 DSL,但似乎没有其他方法。有什么办法可以做到这一点?

routes(
    "/things" bind routes(
        "/" bind Method.GET to allThings,
        "/{id:.*}" bind routes (
            "/" bind Method.GET to singleThing,
            "/" bind Method.DELETE to deleteThing,
            "/" bind Method.PUT to addOrUpdateThing
        )
    )
).asServer(Netty(8080))
    .start()
4

1 回答 1

3

有一个接受 vararg 的同名便利函数Pair<Method, HttpHandler>,您应该能够"/" bind按如下方式删除前导:

routes(
    "/things" bind routes(
        "/" bind Method.GET to allThings,
        "/{id:.*}" bind routes(
            Method.GET to singleThing,
            Method.DELETE to deleteThing,
            Method.PUT to addOrUpdateThing
        )
    )
).asServer(Netty(8080))
    .start()
于 2019-06-13T16:56:52.157 回答