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.
What kind of change does this PR introduce?
Feature and docs update.
What is the current behavior?
Query keys in the URL are formatted based on property names without any customization.
What is the new behavior?
Introduces the capability for users to define custom formatting strategies for query keys in the URL. This can be achieved by implementing the
IUrlParameterKeyFormatter
interface and setting it inRefitSettings
. The default behavior remains unchanged (using property names as they are) to ensure backward compatibility. Also, the documentation has been updated to reflect these changes and guide users on how to utilize this feature.What might this PR break?
Care has been taken to ensure retro-compatibility. This PR should not introduce any breaking changes, as the default behavior remains consistent with previous versions.
Please check if the PR fulfills these requirements
Other information:
AliasAs
attribute always takes precedence in key naming, regardless of any custom key formatters in use.IUrlParameterFormatter
when dealing with dictionaries.AliasAs
attribute aligns with intuitive expectations and mirrors behaviors such asJsonPropertyName
in System.Text.Json.