Поскольку вы разместили ссылку на finch , это API-интерфейс комбинатора для службы finagle http.
- Вы составляете конечную точку вьюрка как комбинацию
path
, param
, header
, cookie
, body
и т. Д., См. Кодовую базу здесь - вы объединяете конечную точку, используя оператор
::
Endpoint#::
имеет определение, как показано ниже :
final def ::[B](other: Endpoint[B])(implicit pa: PairAdjoin[B, A]): Endpoint[pa.Out]
Итак, в вашем примеревы должны составлять конечную точку с path
, вероятно header
и запросом body
.В то время как {}
блокирует ваш успех на конечной точке.Поскольку вы сочиняете header
и body
, подумайте о том, чтобы получить два результата.В scala, если вы не собираетесь использовать переменную, вы можете отменить ее присвоение _
.
Например, List(1, 2).map(elem => elem * 2)
эквивалентно List(1, 2).map(_ * 2)
Пример конечной точки вьюрка,
val auth = post("tokens" :: header[String]("auth") :: stringBody) {
(authHeader: String, body: String) =>
Ok(s"""
{
"auth": "$authHeader",
"body": "$body"
}
""".stripMargin)
}
def main(args: Array[String]): Unit = {
val endpoints: Service[Request, Response] = auth.toService
Await.ready(Http.server.serve(":9090", endpoints))
}
после запуска вы можете использовать конечную точку, используя
$ curl --request POST -H "auth: some header" -d "some data" localhost:9090/tokens
"\n {\n \"auth\": \"some header\",\n \"body\": \"some data\"\n }\n "