Немного сложное сопоставление путей в Akka HTTP - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в Akka HTTP и пытаюсь написать свой первый API. DSL маршрутизации кажется немного запутанным.

Мне удалось сопоставить следующее:

/ канал / Канал / Channelname

Но теперь мне нужно сопоставить следующее:

/ канал / 1012 * ChannelName * / channelAction

И я не могу заставить его работать.

У меня сейчас есть:

private val routes: Route =
    path("channel") {
      get {
        reportAllChannelsStatus()
      }
    } ~
    pathPrefix("channel" / Remaining) { channelName =>
      get {
        singleChannelRequest(channelName, status)
      } ~
      post {
        entity(as[ChannelRequest]) { request =>
          singleChannelRequest(channelName, request.channelAction)
        }
      }
    } ~
    completeWith404()

Я хочу добавить get и post для / channel / channelName / channelAction

Есть идеи, как это сделать? (извлеките channelName и channelAction )

1 Ответ

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

Вы можете соответствовать

path("channel" / Segment / Segment){
   (channelName, channelAction) => ...
}

Имейте в виду, что для разных типов аргументов вам придется сопоставлять разные вещи. Segment для String, IntNumber для Int ...

...