Как часть службы REST, мне нужно реализовать поисковый вызов. Основная идея заключается в том, что пользователь может POST новый поиск и получить результаты:
POST http://localhost/api/search
GET http://localhost/api/search?id=123
Однако мой поиск может длиться несколько минут и возвращать частичные результаты до тех пор, пока они не будут выполнены. То есть, запрос GET вернет что-то вроде:
status: running
results: a, b, c.
в то время как следующий GET-запрос может вернуться
status: completed
results: a, b, c, d, e.
Это противоречит семантике запроса RESTful GET. Запрос всегда должен возвращать тот же результат при вызове несколько раз. Например, когда пользователь использует прокси-сервер кэширования, полные результаты могут никогда не доставляться пользователю.
Вопрос: Есть ли способ обеспечить истинную реализацию RESTful для длительных поисковых запросов с частичными результатами?