Как получить ответ aws appsync graphql от веб-API dotnet

В настоящее время у меня есть запрос graphql, развернутый в aws appsync.

Я хочу выполнить и получить результат graphql от webapi.

1 ответ

Пример GrapqlRequest приведен ниже, где

      public async Task<EventResponseModel> CreateEvent(string idToken)
       {
           var request = new GraphQLRequest
           {
               Query = @"mutation CreateEvent($name: String!, $description: String!, $eventType: EventType!) {
                           eventCreate(
                               data: {
                                   eventInfo: { name: $name, eventType: $eventType }
                                   locationInfo: {
                                       description:$description,
                                }
                             }
                           )
                           {
                                event {
                                       id,
                                       name
                                     }
                               }   
                           }",
               Variables = new { name = "Name", description = "A Description", eventType = "Politics" },
           };

           var graphQLResponse = await graphQlService.ExecuteGraphQLMutation(request, idToken);

           var responseString = graphQLResponse.Data.ToString();
           var deSerializerData = (CreatedEventResponse)JsonConvert.DeserializeObject<CreatedEventResponse>(responseString);
           var eventResponse = new EventResponseModel();
           if (graphQLResponse.Errors != null && graphQLResponse.Errors.Any())
           {
               eventResponse.Message = graphQLResponse.Errors.First().Message;
               eventResponse.Status = "Error";
               return eventResponse;
           }

           if (deSerializerData != null && !string.IsNullOrEmpty(deSerializerData.EventCreate.Event.Id))
           {
               eventResponse.EventId = deSerializerData.EventCreate.Event.Id;
           }

           eventResponse.Status = "Ok";
           eventResponse.Message = "Successfully Created Event";

           return eventResponse;
       }

И

      public async Task<GraphQLResponse<dynamic>> ExecuteGraphQLMutation(GraphQLRequest request, string idToken)
        {
            var graphqlClient = SetGraphQlHttpClient(idToken);

            var response = await graphqlClient.SendMutationAsync<dynamic>(request);

            return response;
        }

И

      private GraphQLHttpClient SetGraphQlHttpClient(string idToken)
        {
            if (string.IsNullOrWhiteSpace(idToken))
                throw new ArgumentException("id token can not be null!");

            var graphQlClient = new GraphQLHttpClient(AppConfig.GraphQlUrl, new NewtonsoftJsonSerializer());
            graphQlClient.HttpClient.DefaultRequestHeaders.Add("x-api-key", AppConfig.ApiId);
            graphQlClient.HttpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {idToken}");

            return graphQlClient;
        }

И используемые Nugets:https://stackru.com/images/2fb7376ed59946bdbf0862f14b932c37f74e10ec.png

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