GraphQL.Client 5.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package GraphQL.Client --version 5.1.0
                    
NuGet\Install-Package GraphQL.Client -Version 5.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GraphQL.Client" Version="5.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GraphQL.Client" Version="5.1.0" />
                    
Directory.Packages.props
<PackageReference Include="GraphQL.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GraphQL.Client --version 5.1.0
                    
#r "nuget: GraphQL.Client, 5.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package GraphQL.Client@5.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GraphQL.Client&version=5.1.0
                    
Install as a Cake Addin
#tool nuget:?package=GraphQL.Client&version=5.1.0
                    
Install as a Cake Tool

GraphQL.Client

A GraphQL Client for .NET Standard over HTTP.

Provides the following packages:

Package Downloads Nuget Latest
GraphQL.Client Nuget Nuget
GraphQL.Client.Abstractions Nuget Nuget
GraphQL.Client.Abstractions.Websocket Nuget Nuget
GraphQL.Client.LocalExecution Nuget Nuget
GraphQL.Client.Serializer.Newtonsoft Nuget Nuget
GraphQL.Client.Serializer.SystemTextJson Nuget Nuget
GraphQL.Primitives Nuget Nuget

Specification:

The Library will try to follow the following standards and documents:

Usage:

Create a GraphQLHttpClient

// To use NewtonsoftJsonSerializer, add a reference to NuGet package GraphQL.Client.Serializer.Newtonsoft
var graphQLClient = new GraphQLHttpClient("https://api.example.com/graphql", new NewtonsoftJsonSerializer());

Create a GraphQLRequest:

Simple Request:
var heroRequest = new GraphQLRequest {
    Query = @"
    {
        hero {
            name
        }
    }"
};
OperationName and Variables Request:
var personAndFilmsRequest = new GraphQLRequest {
    Query =@"
    query PersonAndFilms($id: ID) {
        person(id: $id) {
            name
            filmConnection {
                films {
                    title
                }
            }
        }
    }",
    OperationName = "PersonAndFilms",
    Variables = new {
        id = "cGVvcGxlOjE="
    }
};

Be careful when using byte[] in your variables object, as most JSON serializers will treat that as binary data! If you really need to send a list of bytes with a byte[] as a source, then convert it to a List<byte> first, which will tell the serializer to output a list of numbers instead of a base64-encoded string.

Execute Query/Mutation:

public class ResponseType 
{
    public PersonType Person { get; set; }
}

public class PersonType 
{
    public string Name { get; set; }
    public FilmConnectionType FilmConnection { get; set; }    
}

public class FilmConnectionType {
    public List<FilmContentType> Films { get; set; }    
}

public class FilmContentType {
    public string Title { get; set; }
}

var graphQLResponse = await graphQLClient.SendQueryAsync<ResponseType>(personAndFilmsRequest);

var personName = graphQLResponse.Data.Person.Name;

Using the extension method for anonymously typed responses (namespace GraphQL.Client.Abstractions) you could achieve the same result with the following code:

var graphQLResponse = await graphQLClient.SendQueryAsync(personAndFilmsRequest, () => new { person = new PersonType()} );
var personName = graphQLResponse.Data.person.Name;

Use Subscriptions

public class UserJoinedSubscriptionResult {
    public ChatUser UserJoined { get; set; }

    public class ChatUser {
        public string DisplayName { get; set; }
        public string Id { get; set; }
    }
}
Create subscription
var userJoinedRequest = new GraphQLRequest {
    Query = @"
    subscription {
        userJoined{
            displayName
            id
        }
    }"
};

IObservable<GraphQLResponse<UserJoinedSubscriptionResult>> subscriptionStream 
    = client.CreateSubscriptionStream<UserJoinedSubscriptionResult>(userJoinedRequest);

var subscription = subscriptionStream.Subscribe(response => 
    {
        Console.WriteLine($"user '{response.Data.UserJoined.DisplayName}' joined")
    });
End Subscription
subscription.Dispose();

Blazor WebAssembly Limitations

Blazor WebAssembly differs from other platforms as it does not support all features of other .NET runtime implementations. For instance, the following WebSocket options properties are not supported and will not be set:

Product 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (124)

Showing the top 5 NuGet packages that depend on GraphQL.Client:

Package Downloads
GraphQL.Client.Extensions

Extensions for GraphQL.Client to build graphQL queries from a C# model.

SauceLabs.Visual

Sauce Labs Visual's integration allows customers to run Visual Testing while running their Selenium sessions.

Speckle.Core

Core is the .NET SDK for Speckle

Meshmakers.Octo.Sdk.ServiceClient

Client side proxies to communicate with octo mesh services.

Queryout.SmartGateway.Sdk

Package Description

GitHub repositories (21)

Showing the top 20 popular GitHub repositories that depend on GraphQL.Client:

Repository Stars
Squidex/squidex
Headless CMS and Content Managment Hub
masastack/MASA.Blazor
Blazor UI component library based on Material Design. Support Blazor Server, Blazor WebAssembly and MAUI Blazor.
0x5bfa/FluentHub
A stylish yet powerful GitHub client for Windows
getsentry/sentry-dotnet
Sentry SDK for .NET
CrazyZhang666/EAappEmulater
EAapp模拟器
fmbot-discord/fmbot
.fmbot is a social Discord bot that provides music statistics for you and your friends.
specklesystems/speckle-sharp
.NET SDK, Schema and Connectors: Revit, Rhino, Grasshopper, Dynamo, ETABS, AutoCAD, Civil3D & more.
sharpenrocks/Sharpen
Visual Studio extension that intelligently introduces new C# features into your existing codebase
MobiFlight/MobiFlight-Connector
MobiFlight is an open source project that allows you to create your own home cockpit for your favorite flight simulator in a flexible, affordable and extremely user-friendly way.
GitTools/GitReleaseManager
Tool for creating and exporting releases for software applications hosted on GitHub
insomniachi/Totoro
A Windows 10/11 only application that is a go to for all things anime.
formcms/formcms
AI Agent: Open-source headless CMS built with ASP.NET Core (C#) and React, featuring REST APIs, GraphQL, and a GrapesJS page designer.
TheUltimateC0der/listrr
listrr.pro creates and maintains lists on trakt.tv completely automated based on your filters.
the-hideout/TarkovMonitor
Monitor Tarkov log files to help track progress, queues, and groups
VirtoCommerce/vc-storefront
Virto Commerce Storefront - ASP.NET Core 8.0
pkuehnel/TeslaSolarCharger
A software to let your Tesla charge with solar energy ☀
cyanlabs/Syn3Updater
Windows, Linux and macOS application for updating Ford Sync 3 infotainment systems
Seuntjie900/DiceBot
Flexible and feature rich betting bot for a variety of crypto-currency dice sites
AmyJeanes/TeslaMateAgile
Integration to automatically fill in prices for charge data captured by TeslaMate for smart energy providers
Ginger-Automation/Ginger
Ginger Automation IDE
Version Downloads Last Updated
6.1.0 21,588,422 2024/5/21
6.0.5 704,154 2024/4/22
6.0.4 64,177 2024/4/22
6.0.3 825,739 2024/3/20
6.0.2 3,803,443 2023/11/23
6.0.1 844,367 2023/9/29
6.0.0 4,042,070 2023/4/13
5.1.1 3,116,208 2023/1/23
5.1.0 4,073,925 2022/8/1
5.0.2 2,585,480 2022/7/19
5.0.1 59,724 2022/7/18
5.0.0 104,164 2022/7/15
4.0.2 6,664,298 2021/12/16
4.0.1 805,249 2021/10/29
4.0.0 364,149 2021/10/27
3.2.4 3,890,686 2021/6/6
3.2.3 2,466,226 2021/4/2
3.2.2 423,859 2021/3/2
3.2.1 919,563 2021/1/7
3.2.0 1,153,050 2020/10/15
Loading failed