.net SDK development
## Intent to contribute: Official C# / .NET backend SDK (`Nango.Client`)
### Problem
Nango currently provides official backend SDKs for Node, Python, Java, Ruby, Go, Rust, and PHP — but no official C# / .NET SDK exists. .NET is one of the most widely deployed enterprise and SaaS backend stacks, and the gap forces .NET developers to either hand-roll `HttpClient` wrappers against the REST API or avoid Nango entirely.
I am building two multi-tenant SaaS products on PlatformPlatform (a .NET 10 / Azure Container Apps SaaS boilerplate) and need to integrate Nango for managed API auth and proxy across multiple payment providers, WhatsApp Business, and accounting systems. There is no clean way to do this today without a purpose-built SDK.
### Proposed solution
Contribute an official `Nango.Client` NuGet package that wraps the Nango REST API with idiomatic C# / .NET 8+ conventions. The SDK would mirror the full surface area of the existing Node SDK (`@nangohq/node`):
- `NangoClient` class instantiated with secret key and optional host override
- `CreateConnectSessionAsync` — connect session management
- `ProxyGetAsync` / `ProxyPostAsync` / `ProxyPatchAsync` / `ProxyDeleteAsync` — authenticated proxy requests
- `GetConnectionAsync` / `ListConnectionsAsync` / `DeleteConnectionAsync`
- `TriggerActionAsync` / `TriggerActionAsync<TInput, TOutput>` — typed action invocation
- `TriggerSyncAsync` / `GetSyncStatusAsync`
- `GetRecordsAsync<T>` — typed record retrieval
- `VerifyWebhookSignatureAsync` — HMAC webhook verification
- `IServiceCollection` extension for ASP.NET Core DI registration
- Rate limit handling with 429 + `Retry-After` respect
- Full XML doc comments for IntelliSense
### Implementation approach
- Built on `System.Net.Http.HttpClient` with `IHttpClientFactory` support
- JSON serialisation via `System.Text.Json` with camelCase contracts
- `async`/`await` throughout, `CancellationToken` on all methods
- Strong typing via C# records for all request/response models
- Target `netstandard2.1` + `net8.0` for broad compatibility
- xUnit test suite with `WireMock.Net` for HTTP mocking (no live API calls in CI)
- Published to NuGet as `NangoHQ.Sdk` (or whatever naming convention you prefer — happy to align)
### Why I'm the right person to build this
I have been working in .NET (C# 14 / .NET 10) daily and have reviewed the existing Node SDK in detail. I understand the auth flow, proxy header conventions (`Provider-Config-Key`, `Connection-Id`), and the connect session model. I am also actively contributing SA payment provider integrations (PayFast, Ozow, Peach Payments) to `providers.yaml` in a parallel PR, so I am already oriented in the codebase.
### Questions for the team before I start
1. Do you have a preference on repo location — inside the monorepo under `packages/` or a separate `nango-dotnet` repo?
2. Any preference on NuGet package name or namespace?
3. Are there any internal plans for a .NET SDK I should be aware of before investing build time?
Happy to sync in the Slack community or here. Thank you for the consideration.
1 条评论