Что меня действительно интересует в загрузчике данных, так это кэширование каждого запроса. Например, скажем, что мой запрос к graphql должен вызывать getUser ("id1") 3x. Я хотел бы что-то дедуплицировать этот вызов.
Однако, похоже, что с загрузчиком данных мне нужно передать массив ключей в мою пакетную функцию, и несколько запросов будут объединены в один вызов API.
Это заставляет меня сделать несколько предположений, которые мне не нравятся:
1.) Что у каждой службы, которую я вызываю, есть пакетный API (некоторые из тех, с которыми я имею дело, не имеют).
2.) Что делать, если несколько вызовов объединяются в 1 вызов API, и этот вызов не выполняется, поскольку 1 из элементов не был найден. Обычно я мог бы обработать это, возвращая ноль для этого поля, и это могло бы быть допустимым случаем. Однако теперь весь мой вызов может завершиться ошибкой, если пакетный API решит выдать ошибку, так как 1 элемент не был найден.
Есть ли в любом случае использовать dataloader с запросами с одним ключом.