Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plan for integrating Kiota extensions into Uno.Sdk #2702

Open
kazo0 opened this issue Feb 19, 2025 · 1 comment
Open

Plan for integrating Kiota extensions into Uno.Sdk #2702

kazo0 opened this issue Feb 19, 2025 · 1 comment
Labels
area/http kind/api-change-breaking Categorizes issue or PR as related to breaking change to an existing API kind/discussion kind/enhancement New feature or request.

Comments

@kazo0
Copy link
Contributor

kazo0 commented Feb 19, 2025

Currently, the newly added Kiota HTTP Extensions library is not included in the Http UnoFeature.

The Problem

The Http UnoFeature currently pulls in the Uno.Extensions.Http.WinUI package AND the Uno.Extensions.Http.Refit package: https://github.com/unoplatform/uno/blob/7f303c19cfcbe8624887a3b92498157da09a569c/src/Uno.Sdk/targets/Uno.Extensions.Implicit.Packages.ProjectSystem.targets#L38-L41

It was proposed that Kiota would replace Refit and Refit would be no longer included with the Http UnoFeature. The problem with this is that any change to what the Http UnoFeature pulls in will be a breaking change.

Solutions

Including Both (non-breaking)

The only case that wouldn't be considered breaking would be for the Http UnoFeature to include both the Kiota and Refit extensions.

Split the Http UnoFeature (BREAKING)

Much like we do for Authentication and Logging, we have new dependant UnoFeatures that further customizes what is pulled in. For Authentication, we have the Authentication UnoFeature that pulls in the base Auth Extensions packages and then we have AuthenticationMsal and AuthenticationOidc which pull in the more specific Auth-based extensions. See: https://github.com/unoplatform/uno/blob/7f303c19cfcbe8624887a3b92498157da09a569c/src/Uno.Sdk/targets/Uno.Extensions.Implicit.Packages.ProjectSystem.targets#L11-L24

Image

Same idea with Loggining and LoggingSerilog

It would make sense to follow this patterns and keep the Http UnoFeature but have it only pull in Uno.Extensions.Http.WinUI and then we could have HttpKiota and HttpRefit UnoFeatures.

Replace Refit with Kiota (BREAKING)

Last solution is what was originally proposed: remove Refit completely and just have the Http UnoFeature include Kiota instead.

@kazo0 kazo0 added kind/enhancement New feature or request. triage/untriaged Indicates an issue requires triaging or verification. labels Feb 19, 2025
@kazo0
Copy link
Contributor Author

kazo0 commented Feb 19, 2025

@kazo0 kazo0 added area/http kind/api-change-breaking Categorizes issue or PR as related to breaking change to an existing API kind/discussion and removed triage/untriaged Indicates an issue requires triaging or verification. labels Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/http kind/api-change-breaking Categorizes issue or PR as related to breaking change to an existing API kind/discussion kind/enhancement New feature or request.
Projects
None yet
Development

No branches or pull requests

1 participant