Веб-сервисы REST: синхронные или асинхронные?

Каково поведение по умолчанию веб-сервисов REST - синхронное или асинхронное?
Если это синхронно, то можем ли мы создать асинхронный?

Ответ 1

"Синхронный" или "Асинхронный" - это поведение клиента, запрашивающего ресурс. Это не имеет никакого отношения к веб-сервису REST, его структуре или поддерживающему серверу.

Синхронное поведение:

  • Клиент создает структуру HTTP, отправляет ее через соединение сокета.
  • Ожидает ответа HTTP.

Асинхронное поведение:

  • Клиент создает структуру HTTP, отправляет запрос и перемещается.
  • Там есть еще один поток, ожидающий в сокете ответа. После получения ответа первоначальный отправитель уведомляется (обычно, используя структуру обратного вызова).

Ответ 2

@Thrustmaster объяснил это хорошо. Я просто хотел добавить пункт, чтобы это звучало проще.

Веб-сервис REST - это не что иное, как вызов HTTP. Вы делаете HTTP-запрос к URL и получаете ответ HTTP обратно. Как обработать запрос и ответ до вызывающего абонента.

Ответ 3

Я думаю, что это может помочь вам понять веб-сервисы RESTful в Java:
Создание веб-сервисов RESTful с JAX-RS

Вы можете управлять клиентом как синхронным или асинхронным со стороны клиента. Пример - использование AJAX.

Ответ 4

Службы REST не имеют ничего общего с синхронным или асинхронным.

Клиентская сторона: вызов клиентов должен поддерживать асинхронный доступ к нему, как AJAX в браузере.

Сторона сервера: многопоточная среда/неблокирующая IO используются для достижения асинхронного обслуживания.

Ответ 5

Да, вы можете иметь асинхронный, а также синхронный веб-сервис. Вы можете использовать любую из фреймворков, таких как Restlet, JAXB, JAX-RS.