graphql-net-client
1.1.1
dotnet add package graphql-net-client --version 1.1.1
NuGet\Install-Package graphql-net-client -Version 1.1.1
<PackageReference Include="graphql-net-client" Version="1.1.1" />
paket add graphql-net-client --version 1.1.1
#r "nuget: graphql-net-client, 1.1.1"
// Install graphql-net-client as a Cake Addin #addin nuget:?package=graphql-net-client&version=1.1.1 // Install graphql-net-client as a Cake Tool #tool nuget:?package=graphql-net-client&version=1.1.1
graphql-net-client
Very simple GraphQL client for .NET/C#. Requires JSON.NET!
Making a request
var client = new GraphQLClient("https://mygraphql.endpoint");
var query = @"query($Org:String!, $Items:Int!, $Cursor:String) {
organization(first:$Items, after:$Cursor) {
totalCount
pageInfo {
endCursor
hasNextPage
}
nodes {
name
login
avatarUrl
}
}
}";
var result = client.Query(query, new { Org = "some-org", Items = 10 });
Making a request with the query builder
The query builder allows you to use a fluent interface to create a GraphQL query.
using GraphQL.Client.QueryBuilder;
//....
var query = GraphQLQueryBuilder.New("query", arguments =>
{
arguments.Var("Org").String().Required();
arguments.Var("Items").Int().Required();
arguments.Var("Cursor").String();
}).Query("organization", arguments =>
{
arguments.Param("first", "$Items");
arguments.Param("after", "$Cursor");
}, select =>
{
select.Field("totalCount");
select.Field("pageInfo").Select(pageInfo =>
{
pageInfo.Field("endCursor");
pageInfo.Field("hasNextPage");
});
select.Field("nodes").Select(nodes =>
{
nodes.Field("name");
nodes.Field("login");
nodes.Field("avatarUrl");
});
}).Build();
var result = client.Query(query, new { Org = "some-org", Items = 10 });
Configure HTTP Headers
var client = new GraphQLClient("https://mygraphql.endpoint", headers => {
headers[HttpRequestHeader.ContentType] = "application/json";
headers["X-Some-Header"] = "Some value";
});
Use Json Linq to access result objects
var result = client.Query(query, new { Org = "some-org", Items = 10 });
var nodes = result["organization"]["nodes"].ToObject<IEnumerable<MyObject>>();
Get root object
var result = client.Query(query, new { Org = "some-org", Items = 10 });
var root = result.DataAs<ResultObject>();
Get raw data
var result = client.Query(query, new { Org = "some-org", Items = 10 });
var rawString = result.Raw;
Get response headers
var result = client.Query(query, new { Org = "some-org", Items = 10 });
var headersDictionary = result.Headers;
Get returned query errors
If the query contains errors, the Data object will be null and the Errors object will contain a list of errors reported by the GraphQl API.
var result = client.Query(badQuery, new { Org = "some-org", Items = 10 });
var errors = result.Errors;
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 is compatible. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
.NETCoreApp 2.0
- Newtonsoft.Json (>= 9.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
* Added header information to the results and the exception.
* Bugfix: The Query builder generates wrong query.
* Bugfix: If the client receives a response with errors, it tried to convert the data part into JObject though it was null.