Каковы лучшие практики для мутаций в GraphQL? (Реализация.NET)

В настоящее время я изучаю graphql, и я не уверен, правильно ли я понимаю, как должны работать мутации, особенно в сочетании с подписками.

У меня есть страница с информацией о клиенте, которая включает описание и список программных продуктов, которые он приобрел у нашей компании. В интерфейсе есть одна кнопка редактирования описания, кнопка "плюс" для добавления нового программного продукта в список клиентов и кнопки "минус" для каждого продукта, позволяющие удалить их.
В настоящее время я добавил мутацию, которая принимает идентификатор клиента и строку (newDescription) в качестве параметров и обновляет описание клиента. Это правильно, или я должен иметь идентификатор и ClientInputType (содержащий описание поля) и передавать их в качестве параметров? Что еще более важно, если я использую ClientInputType, и он содержит описание и список программных продуктов, есть ли способ, которым я могу обновлять только одно поле за раз (чтобы обновить клиента, используя ту же самую мутацию, но изменить только обязательные поля в зависимости от того, какая кнопка была нажата в интерфейсе)?

public Mutation(IClientRepository clientRepository) { this.FieldAsync<ClientType>( "updateClient", arguments: new QueryArguments( new QueryArgument<NonNullGraphType<IntGraphType>> { Name = "id" }, new QueryArgument<StringGraphType> { Name = "newDescription" } ), resolve: async ctx => {...} }

Другими словами, могу ли я каким-либо образом сообщить graphql, что я хочу обновить только одно поле в ClientInputType и что оно должно игнорировать остальные? Что должна вернуть мутация? Я сейчас возвращаю обновленного клиента.

0 ответов

Другие вопросы по тегам