你如何用http4k在中间建模路径参数

How do you model a path parameter in the middle with http4k

我正在使用 http4k-contracts,我正在尝试使用路径中间的路径参数对路由进行建模,即

这是路径:/player/{id}/match

这是我的代码(不编译):"/player/" / Path.string().of("id") / "match" meta { ..

正确的做法是什么?

如果无法编译,可能意味着该语句末尾的函数没有足够的参数。你需要这样的东西 - 注意 lambda 中间的“dead”参数,字符串“foo”将被注入:

"/prefix" / Path.of("first") / "foo" / Path.of("second") 
    bindContract GET to { first, _, second -> { 
        Response(OK).body("$first $second") }
    }

尾随参数的工作方式完全相同,因此通过外推,您需要这个:

val route = "/prefix" / Path.of("first") / "foo" meta { description = "I am great"} bindContract GET to { first, _ -> { Response(OK).body(first) } }

对于添加元标记,您很容易被中缀空格绊倒,所以如果它不能编译,请尝试使用换行符。