GoAffPro.Client 0.3.0-dev1

This is a prerelease version of GoAffPro.Client.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package GoAffPro.Client --version 0.3.0-dev1
                    
NuGet\Install-Package GoAffPro.Client -Version 0.3.0-dev1
                    
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="GoAffPro.Client" Version="0.3.0-dev1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GoAffPro.Client" Version="0.3.0-dev1" />
                    
Directory.Packages.props
<PackageReference Include="GoAffPro.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 GoAffPro.Client --version 0.3.0-dev1
                    
#r "nuget: GoAffPro.Client, 0.3.0-dev1"
                    
#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 GoAffPro.Client@0.3.0-dev1
                    
#: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=GoAffPro.Client&version=0.3.0-dev1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=GoAffPro.Client&version=0.3.0-dev1&prerelease
                    
Install as a Cake Tool

GoAffPro.Client

Async-first .NET client for GoAffPro using Kiota-generated models plus a thin wrapper for auth and polling observers.

Targets

  • net9.0
  • net10.0

Install

dotnet add package GoAffPro.Client

Quick Start

using GoAffPro.Client;

await using var client = new GoAffProClient(new GoAffProClientOptions
{
    BearerToken = "your-access-token",
});

// Or login first:
string token = await client.LoginAsync("affiliate@example.com", "password123");

API Usage

Use the generated API root from the wrapper:

var sites = await client.Api.User.Sites.GetAsync(config =>
{
    config.QueryParameters.Limit = 20;
    config.QueryParameters.Offset = 0;
});

Wrapper helpers:

  • LoginAsync(email, password, ct)
  • SetBearerToken(token)

Observer Usage

Stream-based:

await foreach (var order in client.NewOrdersAsync(
    pollingInterval: TimeSpan.FromSeconds(30),
    pageSize: 100,
    cancellationToken: cancellationToken))
{
    Console.WriteLine(order.Id?.String);
}

Event-based:

client.OrderDetected += (_, e) => Console.WriteLine(e.Order.Id?.String);
client.AffiliateDetected += (_, e) => Console.WriteLine(e.Affiliate.AffiliateId?.String);

await client.StartEventObserverAsync(
    pollingInterval: TimeSpan.FromSeconds(30),
    pageSize: 100,
    cancellationToken: cancellationToken);

Backfill controls:

  • OrderObserverStartTime
  • AffiliateObserverStartTime
  • PayoutObserverStartTime

Dependency Injection

services.AddGoAffProClient(options =>
{
    options.BaseUrl = new Uri("https://api.goaffpro.com/v1/", UriKind.Absolute);
    options.BearerToken = configuration["GoAffPro:Token"];
    options.Timeout = TimeSpan.FromSeconds(30);
});

Example App

Project: examples/GoAffPro.Client.Example

Interactive mode:

dotnet run --project examples/GoAffPro.Client.Example

CLI sweep mode:

dotnet run --project examples/GoAffPro.Client.Example -- \
  --run-tests \
  --access_token=env:GOAFFPRO_TEST_TOKEN \
  --products-timeout-seconds=90 \
  --output=api-sweep.json

Build-Time Generation

Generation is handled by src/GoAffPro.Client.Generated/GoAffPro.Client.Generated.csproj:

  1. Uses local canonical spec: openapi/goaffpro-canonical.yaml
  2. Runs Kiota during build
  3. Writes generated sources under src/GoAffPro.Client.Generated/Generated

Do not manually edit generated files.

Testing

Unit tests:

dotnet test tests/GoAffPro.Client.Tests/GoAffPro.Client.Tests.csproj

Integration tests:

dotnet test tests/GoAffPro.Client.IntegrationTests/GoAffPro.Client.IntegrationTests.csproj --filter "Category=Integration"

Integration auth sources:

  • GOAFFPRO_TEST_TOKEN
  • GOAFFPRO_TEST_EMAIL + GOAFFPRO_TEST_PASSWORD
  • tests/GoAffPro.Client.IntegrationTests/appsettings.Test.local.json (template: appsettings.Test.local.example.json)

Known Upstream Instability

Tracked in openapi/goaffpro-canonical.yaml comments:

  • /user/feed/products can time out
  • /user/feed/rewards can return 404/non-JSON
  • /user/feed/transactions can return 500 with non-JSON payload
  • /user/payouts/pending tracked as parity endpoint also seen under /sdk/user/*
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.3.0-dev2 0 2/25/2026
0.3.0-dev1 0 2/25/2026
0.2.1-dev1 50 2/22/2026
0.2.0 54 2/18/2026