如何将多个HTTP动词映射到HTTP4K中的相同路径

时间:2019-06-13 14:52:48

标签: rest kotlin http4k

我有一条与下面的类似的路由在HTTP4K中可以正常工作。但是,令人讨厌的是不得不重复调用“ /”绑定。我一直在寻找一种表达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()

1 个答案:

答案 0 :(得分:1)

有一个同名的便捷函数,它接受一个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()