Как передать объект в мутацию GraphQL с помощью Graph Client в C #
Я реализовал
mutation
в
C#
и я могу позвонить из
insomnia
но проблема с запросом того же самого с использованием Мои типы определены как
public class CheckOutType : ObjectGraphType
{
public CheckOutType(ICheckOutTypeService checkOutTypeService)
{
Field<NonNullGraphType<StringGraphType>>("EmailId");
Field<NonNullGraphType<StringGraphType>>("ClientCode");
}
}
public class CheckOutInputType : InputObjectGraphType
{
public CheckOutInputType(ICheckOutTypeService checkOutTypeService)
{
Field<NonNullGraphType<StringGraphType>>("EmailId");
Field<NonNullGraphType<StringGraphType>>("ClientCode");
}
}
Мутация определяется как
public class CheckOutMutation : ObjectGraphType
{
public CheckOutMutation(ICheckOutTypeService checkOutTypeService)
{
Field<CheckOutType>(
"VRCheckOut",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<CheckOutInputType>> { Name = "CheckOutEntries" }
),
resolve: context =>
{
var checkOutData = context.GetArgument<CheckOut>("CheckOutEntries");
// some statement
return checkOutData;
});
}
}
Это прекрасно работает при бессоннице. Ссылка -Бессонница Действительный ответ
Однако, когда я попытался вызвать ту же мутацию в C#, используя
GraphQLHttpClient
он возвращается с сообщением об ошибке как GraphQL.Validation.InvalidVariableError: переменная '$CheckOutInput' недействительна. Для ненулевой переменной не указано значение.Ниже приведен код, который я использую для вызова мутации.
string query = @"mutation CheckOutMutation($CheckOutInput:CheckOutInputType!)
{
checkOutMutation
{
vRCheckOut(checkOutEntries: $CheckOutInput)
{
emailId
clientCode
}
}
}";
GraphQLRequest queryObject = new GraphQLRequest()
{
Query = query,
Variables = new { emailId = "john@email.com",
clientCode = "ACC101" }
};
var client = new GraphQLHttpClient(ConfigSettings.BaseAPIUrl, new NewtonsoftJsonSerializer());
var response = client.SendMutationAsync<dynamic>(queryObject).Result;
Не могли бы вы подсказать / подсказать, чего в этом не хватает?