在 finch 中,我们可以像这样定义路由器、请求参数、请求体。
case class Test(name: String, age: Int)
val router: Endpoint[Test] = post("hello") { Ok(Test("name", 30)) }
val requestBody: Endpoint[Test] = body.as[Test]
val requestParameters: Endpoint[Test] = Endpoint.derive[Test].fromParams
好处是我们可以将 EndPoint 组合在一起。例如,我可以定义:
请求路径是hello并且Parameter应该有name和age。( router :: requestParameters
)
但是,我仍然可以成功运行不包含任何请求路径的无效端点(实际上没有编译错误)
Await.ready(Http.serve(":3000", requestParameters.toService))
结果返回 404 not found 页面。即使我希望错误应该像编译错误一样早点报告。我想知道这是设计缺陷还是实际上是雀试图修复的?
提前谢谢了