Xurrent.GraphQL
1.0.2
dotnet add package Xurrent.GraphQL --version 1.0.2
NuGet\Install-Package Xurrent.GraphQL -Version 1.0.2
<PackageReference Include="Xurrent.GraphQL" Version="1.0.2" />
<PackageVersion Include="Xurrent.GraphQL" Version="1.0.2" />
<PackageReference Include="Xurrent.GraphQL" />
paket add Xurrent.GraphQL --version 1.0.2
#r "nuget: Xurrent.GraphQL, 1.0.2"
#:package Xurrent.GraphQL@1.0.2
#addin nuget:?package=Xurrent.GraphQL&version=1.0.2
#tool nuget:?package=Xurrent.GraphQL&version=1.0.2
Xurrent GraphQL .NET SDK
The Xurrent GraphQL .NET SDK enables seamless integration with the Xurrent GraphQL API in .NET applications. It supports querying, mutations, pagination, filtering, attachments, and bulk operations.
Installation
The package is available on NuGet:
dotnet add package Xurrent.GraphQL
Features
- Query and mutate data via Xurrent GraphQL.
- Supports OAuth 2.0 and Personal Access Token authentication.
- Handles pagination, filtering, and complex nested queries.
- Upload and manage attachments.
- Bulk import/export functionality.
- Customizable tracing for debugging.
- Manage multiple authentication tokens and accounts.
Getting Started
Quick Start Example
using Xurrent.GraphQL;
AuthenticationToken token = new AuthenticationToken("clientID", "clientSecret");
XurrentClient client = new(token, "account-id", EnvironmentType.Production, EnvironmentRegion.EU);
Person me = await client.Me();
Console.WriteLine($"{me.Name} ({me.PrimaryEmail})");
Query Example
DataList<Person> people = await client.Get(Query.Person
.Select(PersonField.ID, PersonField.Name)
.SelectOrganization(new OrganizationQuery()
.Select(OrganizationField.ID, OrganizationField.Name)));
Mutation Example
PersonCreateInput input = new()
{
Name = "Michael",
PrimaryEmail = "michael@company.com"
};
PersonCreatePayload result = await client.Mutation(input, new PersonQuery().Select(PersonField.ID));
Advanced Usage
Pagination and Nested Queries
The SDK automatically handles pagination. Here's an example of querying with pagination and nested objects:
IQuery query = Query.Person
.Select(PersonField.ID, PersonField.Name)
.ItemsPerRequest(50)
.SelectTeams(Query.Team);
DataList<Person> people = await client.Get(query);
Bulk Import/Export
Export data to CSV or Excel format, or import data via the Bulk API:
string token = await client.Bulk.StartCsvExport("cis");
await client.Bulk.AwaitDownloadAndSave(token, 5, @"./cis.csv");
Attachments
Upload an attachment and link it to a request:
using (Stream stream = File.OpenRead("image.png"))
{
AttachmentUploadResponse attachment = await client.UploadAttachment(stream, "image.png", "image/png");
// Associate the attachment with a request or other entity.
}
Exception Handling
try
{
var result = await client.Mutation(new PersonUpdateInput { ID = "person-id" }, new PersonQuery().Select(PersonField.ID));
}
catch (XurrentException ex)
{
Console.WriteLine(ex.Message);
}
Documentation
For detailed usage, please refer to the following resources:
- Full Xurrent GraphQL API Documentation.
- Additional examples and usage details in the GitHub README.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. 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. |
-
.NETFramework 4.7.2
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Newtonsoft.Json (>= 13.0.3)
- System.Collections.Immutable (>= 8.0.0)
- System.Net.Http (>= 4.3.4)
-
.NETStandard 2.0
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Newtonsoft.Json (>= 13.0.3)
- System.Collections.Immutable (>= 8.0.0)
- System.Net.Http (>= 4.3.4)
-
net6.0
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.