GraphQL с клиентом .net - PullRequest
       13

GraphQL с клиентом .net

0 голосов
/ 19 февраля 2019

Как можно выполнить запрос / мутацию graphQL с переменными?Я использую этот клиент: https://github.com/graphql-dotnet/graphql-client

Я пытаюсь выполнить следующее:

https://help.shopify.com/en/api/custom-storefronts/storefront-api/guides/updating-customers#creating-the-customer

mutation customerCreate($input: CustomerCreateInput!) {
      customerCreate(input: $input) {
        userErrors {
          field
          message
        }
        customer {
          id
        }
      }
    }

Переменные:

{
  "input": {
    "email": "user@example.com",
    "password": "HiZqFuDvDdQ7"
  }
}

мой код:

    var request = new GraphQLRequest();
    request.Query = @"mutation customerCreate($input: CustomerCreateInput!) {
          customerCreate(input: $input) {
            userErrors {
              field
              message
            }
            customer {
              id
            }
          }
        }";

    request.OperationName = "customerCreate";
    request.Variables = new
    {
        email = "user@example.com",
        password = "HiZqFuDvDdQ7"
    };

    var client = new GraphQLClient("https://kitkatco.myshopify.com/api/graphql");
    client.DefaultRequestHeaders.Add("X-Shopify-Storefront-Access-Token", new List<string> { "d021132503b1357116d5f1e51abd9f39" });
    var response = await client.PostAsync(request);

1 Ответ

0 голосов
/ 20 февраля 2019

Нашел решение.Предполагается, что это анонимный тип.Вот так:

    var v = new { email = "test1@yahoo.com", password = "fdsafsdfsdf" };
    var request = new GraphQLRequest
    {
        Query = @"mutation customerCreate($input: CustomerCreateInput!) {
          customerCreate(input: $input) {
            userErrors {
              field
              message
            }
            customer {
              id
            }
          }
        }",
        Variables = new
        {
            input = v
        }

    };
...