Как вызвать rest API с другого сервера scala - PullRequest
0 голосов
/ 16 марта 2020

Я новичок в scala. В настоящее время для создания остальных API я использую спрей. Теперь я хочу использовать API с другого сервера. Я вызываю этот API на каждое нажатие клавиши из пользовательского интерфейса. Я отменяю запрос, используя AbortController, если пользователь продолжает печатать, а предыдущий запрос находится в состоянии ожидания. Чтобы попасть на другой запрос сервера, я использую спрей-клиент. Что выглядит примерно так:

def completeService(completeRequest: CompleteRequest): Future[HttpResponse] = {

  val pipeline: HttpRequest => Future[HttpResponse] = sendReceive ~> unmarshal[HttpResponse]
  val response: Future[HttpResponse] = pipeline(Post(someremoteUrl.concat("complete"), completeRequest)
   ~> addHeader("demo", "test"))
  response
}

Я могу получить доступ, используя этот код выше. И я получаю ожидаемый ответ. Но дело отнимает много времени. Он создает новое TCP-соединение и связывается с хостом, нажимает API, дает ответ, а затем разрывает соединение. Здесь во время завершения он иногда простаивает и не принимает новое соединение.

Есть ли альтернативный способ сделать это?

1 Ответ

0 голосов
/ 17 марта 2020

Вы можете создать запрос на отдых, используя akka http client. Вы можете увидеть подробный пример здесь

...