Fix missing params in Results.Problem and Results.ValidationProblems #36884
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.
Description
In .NET 6, we introduced new extension methods as shorthands for creating Results types from endpoint. However, due to an error, we missed adding a parameter to the
Results.Problem
andResults.ValidationProblem
to align with theExtensions
property available in those types.As a result of this, customers are not able to return
ProblemDetails
orHttpValidationProblemDetails
with a configuredExtensions
type from their APIs.Customer Impact
Without this fix, customers are not able to return to return
ProblemDetails
objectsThere are no easy workarounds for this issue since the
Results.Problem
andResults.ValidationProblem
provide a public abstraction over currently internal functionality, like setting sensible defaults for the title and type of ProblemDetails.Regression?
Risk
Low risk because:
Results
extension methods API.ProblemDetails
already supports having anExtensions
property that is validated.Verification
Packaging changes reviewed?
Background and Motivation
The
Results.Problem
andResults.Validation
extension methods do not provide a way for users to customize theExtensions
property on the resultingProblemDetails
payload.To support these scenarios, we are adding the
extensions
parameter to the existing methods and adding new overloads that takes aProblemDetails
orHttpValidationProblemDetails
object to provide further customizability for users.Proposed API
Usage Examples
Addresses #36848