Реализовать GraphQL и Flutter - PullRequest
       7

Реализовать GraphQL и Flutter

0 голосов
/ 21 сентября 2018

Есть ли способ реализовать GraphQL во флаттере?Я пытался сделать вызов API с объектами запроса и переменных в объекте JSON.

тип '_InternalLinkedHashMap' не является подтипом типа 'String' в типе cast

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Это обновленное и рабочее решение @aqwert

import 'package:graphql_flutter/graphql_flutter.dart';
...

HttpLink link = HttpLink(uri: /*your url here*/); // you can also use headers for authorization etc. 
GraphQLClient client = GraphQLClient(link: link as Link, cache: InMemoryCache());

QueryOptions query = QueryOptions(
    document:
    r'''
      mutation deleteItem($id: String!) {
        deleteItem(callId: $id)
      }
    ''',
    variables: {'id' : id}
);

var result = await client.query(query);
0 голосов
/ 21 сентября 2018

Я использую пакет graphql_flutter уже несколько недель, и, похоже, он работает достаточно хорошо.Вот пример:

import 'package:graphql_flutter/graphql_flutter.dart' show Client, InMemoryCache;
...
Future<dynamic> post(
    String body, {
    Map<String, dynamic> variables,
  }) async {
    final Client client = Client(
      endPoint: endpoint,
      cache: new InMemoryCache(),
    );

    final Future<Map<String, dynamic>> result =
        client.query(query: body, variables: variables);

    return result;
  }

Для использования просто дайте ему graphql и любые переменные.т.е. мутация удаления может выглядеть как

String deleteMutation =
      '''mutation deleteItem(\$itemId: ID!) {
    deleteItem(input: { itemId: \$itemId}) {
      itemId
    }
  }'''.replaceAll('\n', ' ');

 await post(deleteMutation , variables: <String, dynamic>{'itemId': itemId});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...