GoAffPro.Client.Generated 0.4.0-dev1.1

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

Showing the top 1 NuGet packages that depend on GoAffPro.Client.Generated:

Package Downloads
GoAffPro.Client

A modern .NET client for the GoAffPro Affiliate Marketing API with Kiota-generated clients and event detection.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0-dev1.1 34 2/28/2026