Я пишу REST API для службы, которая будет принимать пользовательские данные. Я хотел бы, чтобы все операции были полностью асинхронными, это включает в себя PUT, POST, DELETE и, возможно, даже запросы GET. Моя идея - получить запрос, обработать его достаточно, чтобы убедиться, что он является действительным запросом, а затем передать принятый ответ HTTP 202 вместе с URL-адресом, где в конечном итоге будут доступны данные и токен, чтобы последующие запросы могли быть сопоставлены с обработанными данными, Если запрос недействителен, я отправлю HTTP 400.
Затем клиент будет отвечать за проверку URL-адреса, который я предоставил им в будущем, и передать его по токену. Если данные доступны, я возвращаю нормальный 200 или 201, но если я все еще обрабатываю запрос, я отправлю еще 202, показывая, что обработка не завершена. В случае ошибок обработки данных я пошлю по необходимости 4xx или 5xx.
Причина, по которой я хочу это сделать, заключается в том, что я могу сбросить все допустимые запросы в пул запросов и заставить рабочих вытащить из очереди и обрабатывать запросы по мере их доступности. Поскольку я не знаю размер пула или количество доступных сотрудников, я не могу быть уверенным, что могу получить запросы достаточно быстро, чтобы удовлетворить 30-секундный предел Google App Engine.
Мой вопрос: я извращаю REST, обрабатывая запросы таким образом? Например, браузеры требуют немедленных ответов на запросы. Для моих HTML-страниц я планирую ответить на структурированную страницу, а затем использовать AJAX для обработки запросов данных.
Меня в основном интересуют любые мнения или опыт обработки данных с помощью REST таким образом.