编写变异图ql客户端c#

编写变异图ql客户端c#,c#,graphql,graphql-dotnet,graphqlclient,C#,Graphql,Graphql Dotnet,Graphqlclient,我试图写变异,但它给了我错误。 as{“errors”:[{“message”:“语法错误:应为$,找到名称\“objects\”,“locations”:[{“line”:2,“column”:27}],“extensions”:{“code”:“GRAPHQL_PARSE_FAILED”}}} 我写的代码是这样的。 [HttpGet("GraphDataCreate")] public async Task<dynamic> R

我试图写变异,但它给了我错误。
as
{“errors”:[{“message”:“语法错误:应为$,找到名称\“objects\”,“locations”:[{“line”:2,“column”:27}],“extensions”:{“code”:“GRAPHQL_PARSE_FAILED”}}}

我写的代码是这样的。

        [HttpGet("GraphDataCreate")]
        public async Task<dynamic> ReturnGraphDataCreate()
        {
            using var graphQLClient = new GraphQLHttpClient("https://api.spacex.land/graphql/", new NewtonsoftJsonSerializer());
            var trial = new GraphQLRequest
            {
                Query = @"
                query insert_users(objects: { name: $name, rocket: $rocket }) {
                    returning {
                        id
                        name
                        rocket
                        timestamp
                        twitter
                    }
                }",
                OperationName = "insert_users",
                Variables = new
                {
                    name = "AdiAntNam",
                    rocket = "SPUTNIK5V"
                }
            };
            var graphQLResponse = (object)(null);
            try
            {
                graphQLResponse = await graphQLClient.SendQueryAsync<dynamic>(trial);
            }
            catch (Exception ex)
            {
                var err = ex;
                string err1 = ex.Message;
                string err2 = ex.InnerException.Message;                
            }
            return Task.FromResult(graphQLResponse);
        }
[HttpGet(“GraphDataCreate”)]
公共异步任务ReturnGraphDataCreate()
{
使用var graphQLClient=new GraphQLHttpClient(“https://api.spacex.land/graphql/“,新的NewtonsoftJsonSerializer());
var试用=新的GraphQLRequest
{
查询=@“
查询插入用户(对象:{name:$name,rocket:$rocket}){
返回{
身份证件
名称
火箭
时间戳
啁啾
}
}",
OperationName=“插入用户”,
变量=新
{
name=“AdiAntNam”,
火箭=“人造卫星5V”
}
};
var graphQLResponse=(对象)(null);
尝试
{
graphQLResponse=等待graphQLClient.SendQueryAsync(试用);
}
捕获(例外情况除外)
{
var-err=ex;
字符串err1=例如消息;
字符串err2=ex.InnerException.Message;
}
返回Task.FromResult(graphQLResponse);
}
现在我在这部分遗漏了什么? 我引用的参考资料来自这里

这个例子的问题是编写的数据类型很难理解
PersonAndFilms($id:id)
现在id是一个数据类型,所以我假设它只是一个声明的变量名,这就是我感到困惑的原因。

因此,我将其编写为query
insert_users(objects:{name:$name,rocket:$rocket})
,这对于GraphQL来说是不可理解的,因为它需要数据类型,所以我将我的查询重新编写如下。

var trial = new GraphQLRequest
            {
                Query = @"
                mutation xyz($nameU: String, $rocketU: String)
                {
                    insert_users(objects: { name: $nameU , rocket: $rocketU }) 
                    {
                        returning 
                        {
                            id
                            name
                            rocket
                            timestamp
                            twitter
                        }
                    }
                }",
                OperationName = "xyz",
                Variables = new
                {
                    nameU = "AdiAntNam2",
                    rocketU = "SPUTNIK5V"
                }
            };

现在变异
xyz($nameU:String,$rocketU:String)
读取正确的数据类型。该示例在项目中的某些内容是正确的,但最终用户会感到困惑,因为
$id:id
不太容易理解,所以最好使用我的示例。

为什么将OperationName更改为xyz?我还不熟悉使用GraphQLI添加新项。我还看到您正在使用字符串进行类型声明。其他类型是否也使用布尔和整数?@DotNetProgrammer请查看此URL-因为有些参数需要字符串类型,有些参数需要布尔和整数。@DotNetProgrammer作为该部分目前只需要字符串。@DotNetProgrammer xyz仅用于知道您可以写入名称以外的任何内容。