graphql_client 0.0.5
This package and repo is no longer maintained, please follow graphql_client instead, which is a mono repo for following packages
Package | Pub |
---|---|
graphql/client.dart | |
graphql_flutter |
Changelog #
0.0.5 #
Deprecated, moving to https://github.com/zino-app/graphql-flutter
0.0.3 #
Features #
- Support GQL directive
Breaking changes #
- Refactor OperationType. Remove the enum and replace its value by constant strings
Minor changes #
- Remove getter and setter of Scalar & ScalarCollection mixin
0.0.2 #
- Refactor the client
- Create a DSL that supports very GQL features
- Ready to support code generation
0.0.1 #
- Initial version.
- Very simple PoC of a reflective GraphQL client with example.
- Establishing the ROADMAP
example/graphql_client_example.dart
// Copyright Thomas Hourlier. All rights reserved.
// Use of this source code is governed by a MIT-style license
// that can be found in the LICENSE file.
// ignore_for_file: public_member_api_docs
import 'dart:async';
import 'dart:io';
import 'package:http/http.dart';
import 'package:logging/logging.dart';
import 'package:graphql_client/graphql_client.dart';
import 'queries_examples.dart';
Future main() async {
Logger.root
..level = Level.ALL
..onRecord.listen((rec) {
print('${rec.level.name}: ${rec.time}: ${rec.message}');
});
const endPoint = 'https://api.github.com/graphql';
final apiToken = Platform.environment['GQL_GITHUB_TOKEN'];
final client = new Client();
final logger = new Logger('GQLClient');
final graphQLClient = new GQLClient(
client: client,
logger: logger,
endPoint: endPoint,
);
final query = new LoginQuery();
final mutation = new AddTestCommentMutation();
try {
print('\n\n===================== TEST 1 =====================');
final queryRes = await graphQLClient.execute(
query,
variables: {'issueId': 'MDU6SXNzdWUyNDQzNjk1NTI', 'body': 'Test issue 2'},
headers: {
'Authorization': 'bearer $apiToken',
},
);
print('=== . ===');
print(queryRes.viewer.login.value);
print(queryRes.viewer.bio.value);
print(queryRes.viewer.bio2.value);
print('=== .repository ===');
print(queryRes.viewer.repository.createdAt.value);
print(queryRes.viewer.repository.description.value);
print(queryRes.viewer.repository.id.value);
print(queryRes.viewer.repository.repoName.value);
print('=== .gist ===');
print(queryRes.viewer.gist.description.value);
print('=== .repositories ===');
for (var n in queryRes.viewer.repositories.nodes) {
print(n.repoName.value);
}
} on GQLException catch (e) {
print(e.message);
print(e.gqlErrors);
} finally {
print('=================== END TEST 1 ===================\n\n');
}
try {
print('\n\n===================== TEST 2 =====================');
final mutationRes = await graphQLClient.execute(
mutation,
variables: {'issueId': 'MDU6SXNzdWUyNDQzNjk1NTI', 'body': 'Test issue '},
headers: {
'Authorization': 'bearer $apiToken',
},
);
print('=== .body ===');
print(mutationRes.addComment.commentEdge.node.body.value);
} on GQLException catch (e) {
print(e.message);
print(e.gqlErrors);
} finally {
print('=================== END TEST 2 ===================\n\n');
}
try {
print('\n\n===================== TEST 3 =====================');
await graphQLClient.execute(
mutation,
variables: {'issueId': 'efwef', 'body': 'Test issue'},
headers: {
'Authorization': 'bearer $apiToken',
},
);
} on GQLException catch (e) {
print(e.message);
print(e.gqlErrors);
print(e.gqlErrors.first);
} finally {
print('=================== END TEST 3 ===================\n\n');
}
}
Use this package as a library
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies:
graphql_client: ^0.0.5
2. Install it
You can install packages from the command line:
with pub:
$ pub get
Alternatively, your editor might support pub get
.
Check the docs for your editor to learn more.
3. Import it
Now in your Dart code, you can use:
import 'package:graphql_client/graphql_client.dart';
Popularity:
Describes how popular the package is relative to other packages.
[more]
|
23
|
Health:
Code health derived from static analysis.
[more]
|
--
|
Maintenance:
Reflects how tidy and up-to-date the package is.
[more]
|
--
|
Overall:
Weighted score of the above.
[more]
|
11
|
The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.
Analysis issues and suggestions
Support Dart 2 in pubspec.yaml
.
The SDK constraint in pubspec.yaml
doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see https://dart.dev/dart-2#migration.
Maintenance issues and suggestions
Make sure dartdoc
successfully runs on your package's source files. (-10 points)
Dependencies were not resolved.
Dependencies
Package | Constraint | Resolved | Available |
---|---|---|---|
Direct dependencies | |||
Dart SDK | >=1.20.1 <2.0.0 |