Skip to content

Modernize .NET SDK for 3.0.0 with playlist support - #7

Merged
wenbinf merged 1 commit into
mainfrom
fix/dotnet-sdk-sync
Sep 24, 2026
Merged

wenbinf merged 1 commit into
mainfrom
fix/dotnet-sdk-sync

Conversation

@wenbinf

@wenbinf wenbinf commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Prepare PodcastAPI 3.0.0 with all five playlist write operations and .NET 8+ support. Generate the 30 endpoint wrappers, contract fixtures, and README reference from the Listen Notes API specification while preserving existing method names and dictionary parameters.

Changes

  • Add CreatePlaylist, UpdatePlaylist, AddPlaylistItem, DeletePlaylistItem, and UpdatePlaylistItemNotes, including PUT support, nested path identifiers, and empty notes/descriptions.
  • Replace RestSharp with reusable HttpClient transport, per-client credentials, cancellation, timeouts, and redirects disabled by default. Requests no longer modify caller dictionaries.
  • Preserve JSON and quota helpers, match headers case-insensitively, expose buffered response details on HTTP errors, and correct the user agent to podcast-api-dotnet.
  • Update dependencies and lockfiles, test .NET 8 and 10 in CI, and separate offline tests from credential-free public mock integration checks.
  • Compile generated README examples and verify the packed NuGet artifact through a fresh consumer.

Migration

Requires .NET 8+. The RestSharp-specific client.restClient and response.response fields are replaced by constructor transport options and response.StatusCode / response.Headers. Every non-2xx response now throws. See the README migration notes.

Validation

  • 47 offline tests passed on .NET 8 and .NET 10.
  • All 30 methods passed against the public mock API, including all five playlist writes.
  • Standalone source build and packaged consumer checks passed; generated README examples compile.
  • Monorepo generation checks, Django documentation tests, frontend typechecking, and snippet tests passed.
  • GitHub CI passed: .NET 8, .NET 10, and public mock integration.
  • Production GET smoke: 19 of 21 endpoints returned HTTP 200 with response-shape and quota-header checks passing. SpellCheck and FetchRelatedSearches returned HTTP 401 with the expected PRO/ENTERPRISE plan restriction for the test credential. All requests were guarded as GET-only; no production writes were tested.

NuGet publication is separate. Website SDK availability remains gated at the published 1.1.6 version until 3.0.0 is released.

@wenbinf
wenbinf merged commit 0969bbb into main Sep 24, 2026
3 checks passed
@wenbinf
wenbinf deleted the fix/dotnet-sdk-sync branch September 24, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant