Skip to content

Plan for integrating Kiota extensions into Uno.Sdk #2702

@kazo0

Description

@kazo0

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.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions