Как вложить маршруты в Akka HTTP? - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь написать простую серию маршрутов, вот что я хочу сделать:

GET / должен вывести «hello get»

POST / должен вывести «hellopost "

GET /foo должен напечатать" hello foo get "

POST /foo должен напечатать" hello foo get "

Вот что у меня есть:

val route = pathSingleSlash {
    get(complete("hello get")) ~
    post(complete("hello post"))~
    path("foo") {
      get(complete("hello foo get"))~
      post(complete("hello foo post"))
    }
  }

Это работает для GET / и POST /, но и GET, и POST на /foo 404.

Я перепробовал почти все и не могу понять, что делать.Документация довольно сложна для понимания, когда дело доходит до этого.

Кто-нибудь может дать мне какие-нибудь указания?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Я бы рекомендовал структурировать пути таким образом для максимальной читабельности:

get & pathEndOrSingleSlash {
  complete("hello get")
} ~
post & pathEndOrSingleSlash {
  complete("hello post")
} ~
get & path("foo") & pathEndOrSingleSlash {
  complete("hello foo get")
}
post & path("foo") & pathEndOrSingleSlash {
  complete("hello foo post")
}
0 голосов
/ 24 сентября 2018

пожалуйста, попробуйте это.это работает для меня.

val route1 = path("foo") {
        get(complete("hello foo get")) ~
          post(complete("hello foo post"))
      }

  val route = pathSingleSlash {
    get(complete("hello get")) ~
      post(complete("hello post"))
  }

  val finalRoute = route ~ route1

и используйте finalRoute в своем заявлении привязки маршрута.

val bindingFuture = Http().bindAndHandle(finalRoute, "localhost", 8085)
...