Есть ли разумный способ реализовать парадигму запросов на основе заданий в GraphQL?
В частности, что-то вроде следующего:
- Вызывающий абонент отправляет запрос поиска
- Backend возвращает идентификатор задания
- Абонент получает обновления статуса по заданию во время его выполнения
- Абонент может отдельно получать страницы данных из результатов задания
Я предполагаю, что проблема, которую я вижу здесь, состоит в том, что мы разделяем процесс на два этапа: один - выполнение запроса, а второй - получение данных. В результате поля, запрошенные в первом запросе, не соответствуют тому, что возвращается (только идентификатор задания). И аналогично, вызов для получения результатов имеет ту же проблему.
Подписки тоже не решают эту проблему, я не верю. Я думаю, что они могут помочь с запросом данных, для возврата которых может потребоваться много времени, но это не совсем то же самое, что API на основе задания.
Возможно, это нишевый вариант использования, и у меня нет сомневаюсь, что это не то, что GraphQL был изначально создан для решения. Но мне просто интересно, если это что-то выполнимое, или это больше пытается вставить квадратный колышек в круглое отверстие.