Извлечение логики из класса маршрутизации akka-http и создание метода для каждого пути REST - PullRequest
0 голосов
/ 28 ноября 2018

Я хотел иметь возможность сделать что-то подобное с помощью akka-http:

// etc ... ~
path("abc" / "def") { m } // here I just define the path routing logic

// now here I take care of everything else.

// this works:
def m(request: RequestContext): Future[RouteResult] = {
  request.complete("")
}

, но затем начались проблемы:

// but this will not!:
def m(request: RequestContext): Future[RouteResult] = get {
  request.complete("")
}

// nor this!:
def m(request: RequestContext): Future[RouteResult] = get {
  parameters('a) { a => complete("") }
}

// nor this!:
def m(request: RequestContext): Future[RouteResult] = get {
  parameters('a) { a => complete("") }
}

// nor this!:
def m(request: RequestContext): Future[RouteResult] = get {
  parameters('a) { a => request.complete("") }
}

Любой простой способ обойти эту проблему?Не то чтобы я действительно интересовался любой из Future возможностей Scala / akka-http.У меня все в порядке с синхронным решением на этом уровне.

1 Ответ

0 голосов
/ 28 ноября 2018

Нашел ответ сам.Просто примените request:

def m(request: RequestContext): Future[RouteResult] = get {
  request.complete("")
}(request)
...