Каково поведение по умолчанию веб-сервисов 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.