Creare un client GraphQL in Dart
In questo articolo vediamo come creare un semplice client GraphQL in Dart.
Come "server" useremo QraphQLPlaceholder.
Prima di tutto installiamo le libreria:
dart pub add graphql
Qui sotto un pò di codice; ho messo tutto insieme per comodità:
import 'package:graphql/client.dart';
class User {
final int id;
final String name;
final String email;
User({required this.id, required this.name, required this.email});
factory User.fromJson(Map<String, dynamic> json) {
return User(
id: int.parse(json['id'].toString()),
name: json['name'] as String,
email: json['email'] as String,
);
}
}
void main() async {
final HttpLink httpLink = HttpLink(
'https://graphqlplaceholder.vercel.app/graphql',
);
final GraphQLClient client = GraphQLClient(
link: httpLink,
cache: GraphQLCache(),
);
const String queryListaUtenti = r'''
query ListaUtenti {
users {
id
name
email
}
}
''';
final QueryOptions options = QueryOptions(document: gql(queryListaUtenti));
print('Invio della query GraphQL in Dart...');
try {
final QueryResult result = await client.query(options);
if (result.hasException) {
print('Errore: ${result.exception.toString()}');
return;
}
final List<dynamic> usersJson = result.data?['users'] ?? [];
final List<User> users = usersJson
.map((json) => User.fromJson(json as Map<String, dynamic>))
.toList();
print('n--- Dati Lista Utenti (${users.length} risultati) ---');
for (var user in users) {
print('ID: ${user.id}, Nome: ${user.name}, Email: ${user.email}');
}
print('--------------------------------------------------n');
} catch (e) {
print('Errore imprevisto: $e');
}
}
Enjoy!
dart graphql qraphqlplaceholder
Commentami!