LinQL 0.3.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package LinQL --version 0.3.0
NuGet\Install-Package LinQL -Version 0.3.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="LinQL" Version="0.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LinQL --version 0.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LinQL, 0.3.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.
// Install LinQL as a Cake Addin #addin nuget:?package=LinQL&version=0.3.0 // Install LinQL as a Cake Tool #tool nuget:?package=LinQL&version=0.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LinQL
LINQ-like access to GraphQL endpoints in .Net
Supported Operations
- Queries
- Mutations
- Input Types
- Arguments
- Interfaces/Unions
Coming soon
- Subscriptions
- Auto-generating client via introspection
- Custom Scalars
Getting Started
- Install the Nuget package
dotnet add package LinQL
- Create a
Graph
and aRootType
public class StarWarsGraph : Graph
{
public StarWarsGraph(IGraphQLConnection connection, IQueryTranslator queryTranslator)
: base(connection, queryTranslator)
{
}
public StarWarsQueries Query => this.RootType<StarWarsQueries>();
}
[OperationType]
public class StarWarsQueries : RootType<StarWarsQueries>
{
public Film Film { get; set; }
[GraphQLOperation, GraphQLField(Name = "film")]
public Film GetFilm(string id) => this.Film;
}
public class Film
{
[GraphQLField(Name = "ID")]
public string? Id { get; set; }
[GraphQLField(Name = "episodeID")]
public int EpisodeId { get; set; }
public string? Title { get; set; }
}
- Add a graph client to DI
public void ConfigureServices(IServiceCollection services)
{
services.AddGraphQLClient<StarWarsGraph>()
.WithHttpConnection(c => c.BaseAddress = new Uri("https://swapi-graphql.netlify.app/.netlify/functions/index"))
}
Underneath, WithHttpConnection
is just setting up IHttpClientFactory
so anything you can configure with that, you can configure here; authentication headers, middleware etc.
- Write queries!
public class StarWarsClient
{
private readonly StarWarsGraph graph;
public StarWarsClient(StarWarsGraph graph) => this.graph = graph;
public async Task<Film> GetFilmById(string id, CancellationToken cancellationToken)
=> await this.graph.Query.Select(x => x.GetFilm(id)).Execute(cancellationToken);
}
For more help check out the docs
A range of expressions can be converted as demonstrated by the TranslationProviderTests
. If you come accross something that doesn't work, please raise an issue or a pull request with a supporting test.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- FastExpressionCompiler (>= 3.3.2)
- Microsoft.Extensions.Http (>= 6.0.0)
- OneOf (>= 3.0.223)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LinQL:
Package | Downloads |
---|---|
LinQL.GraphQL.Client
LINQ-like access to GraphQL endpoints in .Net |
GitHub repositories
This package is not used by any popular GitHub repositories.