graphql突变的最佳实践是什么? (.NET实现)

时间:2019-08-09 11:06:17

标签: graphql graphql-dotnet graphql-mutation graphql.net

我目前正在学习graphql,不确定我是否正确理解了突变的工作原理,尤其是与订阅结合使用时。

我有一个包含客户详细信息的页面,其中包括描述和他从我公司购买的软件产品的列表。在界面中,有一个用于描述的编辑按钮,一个用于将新软件产品添加到客户端列表的加号按钮,以及每个产品的减号按钮,以允许将其删除。
我目前添加了一个突变,该突变以客户端的ID和字符串(newDescription)作为参数,并更新了客户端的描述。是这样吗,还是我应该拥有id和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 个答案:

没有答案