Итак, я работаю над тем, чтобы попытаться изучить GraphQL для ruby для проекта.
У меня почти все его части запущены и работают, но у меня проблемы с другими частями.Существует множество учебных пособий, которые охватывают ультраосновы, но ни один из них, кажется, не расширяется в правильных направлениях.
У меня есть мутация, чтобы обновить моего пользователя.Все идет нормально.Я могу искать пользователя по его идентификатору и обновлять одно конкретное поле.Я могу расширить это до обновления двух полей.
То, что я не могу сделать, и это выглядит безумно, это обобщить эти поля - вообще.Моя пользовательская модель будет иметь более 20 полей: номера телефонов, адреса, должность и т. Д. И т. П.,Все идет нормально.Затем я определяю поля, которые мутация может вернуть.Опять же, пока все хорошо.
Затем я перехожу к фактическому методу разрешения.
Исходный синтаксис неплох.def resolve(user_id:, name:, email:)
.Затем вы обнаруживаете, что, несмотря на установку значения false, вы должны включить все значения.Вам необходимо указать значения по умолчанию для необязательных переменных.Таким образом, это становится def resolve(user_id:, name: null, email: null)
- но это фактически обнуляет эти значения, вы не можете делать частичные обновления.Что еще хуже, представьте, что у вас есть 20 полей, которые вы должны установить таким образом.Вы можете играть в игры, пытаясь преобразовать аргументы в словарь и отклоняя нулевые значения - но тогда вы не можете установить свойства равными nil, если они должны быть равны нулю снова.