feat: expose api client hooks for dotnet #389
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When using Ory SDK from .NET Blazor WASM, it is necessary to call
httpRequestMessage.SetBrowserRequestCredentials(BrowserRequestCredentials.Include)
onHttpRequestMessage
before invoking browser flows via fetch, so that cookies are included in the request and saved to the browser from the response.Before making this PR I attempted to convince OpenAPI Generator maintainers to expose end-user-facing hooks on the generated
ApiClient
, but the implementation is taking time to work out. That is why this PR is for Ory SDK and not OpenAPI Generator.This is a non-breaking change to add two new public properties to the
ApiClient
classRequestHook
andResponseHook
which are optional actions to pre- and post-process RestClient roundtrips. This allows .NET Blazor WASM users to set a hook like so when creating a client. For example when using Kratos throughFrontendApi
:I've built and tested this change with my Blazor WASM project and it worked perfectly.
Please let me know if you require additional documentation or tests.
Related Issue or Design Document
Checklist
If this pull request addresses a security vulnerability,
I confirm that I got approval (please contact [email protected]) from the maintainers to push the changes.