Flowthru.Extensions.GQL
0.26.0-preview.112
dotnet add package Flowthru.Extensions.GQL --version 0.26.0-preview.112
NuGet\Install-Package Flowthru.Extensions.GQL -Version 0.26.0-preview.112
<PackageReference Include="Flowthru.Extensions.GQL" Version="0.26.0-preview.112" />
<PackageVersion Include="Flowthru.Extensions.GQL" Version="0.26.0-preview.112" />
<PackageReference Include="Flowthru.Extensions.GQL" />
paket add Flowthru.Extensions.GQL --version 0.26.0-preview.112
#r "nuget: Flowthru.Extensions.GQL, 0.26.0-preview.112"
#:package Flowthru.Extensions.GQL@0.26.0-preview.112
#addin nuget:?package=Flowthru.Extensions.GQL&version=0.26.0-preview.112&prerelease
#tool nuget:?package=Flowthru.Extensions.GQL&version=0.26.0-preview.112&prerelease
Flowthru.Extensions.GQL
Read and write Flowthru Catalog Items against a GraphQL API through a StrawberryShake client.
Declare an Item from a query operation and a projection (result -> rows), and a Flow loads
typed rows from the API the same way it loads them from a file. Single-item, collection,
paginated (Relay cursor or offset), and deferred query handles are all supported, and a single
item can be made read/write by supplying a mutation delegate.
Mental model
This bridges a StrawberryShake client into the
Catalog. Bring everything StrawberryShake gives you — generated operation types, an
IOperationResult<TResult> per query, your .graphql documents. The extension brings no client
of its own: you wire your StrawberryShake client in DI as usual and pass its operation delegates
to the Item. An Item is a named handle on a query — the load executes the operation and the
selectData projection pulls your rows out of the result envelope. Use GqlDeferred when a step
should decide when to fire the network call (it materialises via .ToList()).
Install
dotnet add package Flowthru.Extensions.GQL
Wire your StrawberryShake client in DI, then declare a GQL-backed Item from its operations:
// Host wiring — your generated StrawberryShake client, configured as usual.
services
.AddSpaceflightsClient()
.ConfigureHttpClient(c => c.BaseAddress = new Uri("https://api.example.com/graphql"));
// In the Catalog — a deferred query handle; the consuming step calls .ToList()
// to fire the GetCompanies operation against the server.
public IItem<GqlQuery<IGetCompaniesResult, IGetCompanies_Companies>> Companies =>
CreateItem(() => Item.Of<GqlQuery<IGetCompaniesResult, IGetCompanies_Companies>>("GQLCompanies")
.GqlDeferred(
queryFunc: ct => _client.GetCompanies.ExecuteAsync(ct),
selectData: r => r.Companies)
.AllowEmpty()
.Build());
UseGql() is the opt-in scheduler gate for rate-limited endpoints — pair it with
WithGqlConcurrency(...) to cap concurrent calls to an endpoint when running at
Parallelism > 1.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Flowthru.Core (>= 0.26.0-preview.112)
- Microsoft.Extensions.Configuration (>= 10.0.4)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.4)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.4)
- Microsoft.Extensions.Options (>= 10.0.4)
- StrawberryShake.Core (>= 15.1.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.26.0-preview.112 | 43 | 6/5/2026 |
| 0.25.0 | 104 | 6/2/2026 |
| 0.25.0-preview.110 | 47 | 6/2/2026 |
| 0.24.0-preview.108 | 50 | 6/2/2026 |
| 0.21.0 | 96 | 5/24/2026 |
| 0.21.0-preview.101 | 56 | 5/24/2026 |
| 0.20.0 | 92 | 5/23/2026 |
| 0.20.0-preview.100 | 49 | 5/23/2026 |
| 0.19.0-preview.99 | 49 | 5/23/2026 |
| 0.18.5-preview.98 | 62 | 5/22/2026 |
| 0.18.4-preview.97 | 49 | 5/22/2026 |
| 0.18.3 | 98 | 5/20/2026 |
| 0.18.3-preview.95 | 59 | 5/19/2026 |
| 0.18.2 | 96 | 5/18/2026 |
| 0.18.2-preview.93 | 49 | 5/18/2026 |
| 0.18.1 | 92 | 5/15/2026 |
| 0.18.1-preview.92 | 45 | 5/14/2026 |
| 0.18.0-preview.91 | 47 | 5/14/2026 |
| 0.17.5 | 95 | 5/13/2026 |