https://github.com/charlesdevandiere/graphql-query-builder-dotnet
A .NET GraphQL query builder
https://github.com/charlesdevandiere/graphql-query-builder-dotnet
csharp dotnet graphql graphql-query-builder
Last synced: 8 months ago
JSON representation
A .NET GraphQL query builder
- Host: GitHub
- URL: https://github.com/charlesdevandiere/graphql-query-builder-dotnet
- Owner: charlesdevandiere
- License: mit
- Created: 2020-02-27T12:21:25.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-28T15:15:03.000Z (about 1 year ago)
- Last Synced: 2025-04-03T21:11:16.540Z (9 months ago)
- Topics: csharp, dotnet, graphql, graphql-query-builder
- Language: C#
- Homepage: https://charlesdevandiere.github.io/graphql-query-builder-dotnet/
- Size: 95.7 KB
- Stars: 50
- Watchers: 3
- Forks: 17
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GraphQL Query Builder .NET

A tool to build GraphQL query from a C# model.
[](https://dev.azure.com/charlesdevandiere/charlesdevandiere/_build/latest?definitionId=3&branchName=master)

[](https://www.nuget.org/packages/GraphQL.Query.Builder)
[](https://www.nuget.org/packages/GraphQL.Query.Builder)
See complete documentation [here](https://charlesdevandiere.github.io/graphql-query-builder-dotnet/)
See sample [here](https://github.com/charlesdevandiere/graphql-query-builder-dotnet/tree/master/sample/Pokedex)
## Install
```shell
dotnet add package GraphQL.Query.Builder
```
## Usage
```csharp
// Create the query
IQuery query = new Query("humans") // set the name of the query
.AddArguments(new { id = "uE78f5hq" }) // add query arguments
.AddField(h => h.FirstName) // add firstName field
.AddField(h => h.LastName) // add lastName field
.AddField( // add a sub-object field
h => h.HomePlanet, // set the name of the field
sq => sq /// build the sub-query
.AddField(p => p.Name)
)
.AddField( // add a sub-list field
h => h.Friends,
sq => sq
.AddField(f => f.FirstName)
.AddField(f => f.LastName)
);
// This corresponds to:
// humans(id: "uE78f5hq") {
// FirstName
// LastName
// HomePlanet {
// Name
// }
// Friends {
// FirstName
// LastName
// }
// }
Console.WriteLine("{" + query.Build() + "}");
// Output:
// {humans(id:"uE78f5hq"){FirstName LastName HomePlanet{Name}Friends FirstName LastName}}
```