Fix missing params in Results.Problem and Results.ValidationProblems#36884
Closed
captainsafia wants to merge 1 commit into
Closed
Fix missing params in Results.Problem and Results.ValidationProblems#36884captainsafia wants to merge 1 commit into
captainsafia wants to merge 1 commit into
Conversation
|
"Hi captainsafia. Please make sure you've updated the PR description to use the Shiproom Template. Also, make sure this PR is not marked as a draft and is ready-to-merge. To learn more about how to prepare a servicing PR click here. |
halter73
approved these changes
Sep 23, 2021
Member
|
We agreed to take this for RC2. |
10 tasks
Contributor
Author
Thanks! Closing this in favor of #36856 which already targets the correct branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.ProblemandResults.ValidationProblemto align with theExtensionsproperty available in those types.As a result of this, customers are not able to return
ProblemDetailsorHttpValidationProblemDetailswith a configuredExtensionstype from their APIs.Customer Impact
Without this fix, customers are not able to return to return
ProblemDetailsobjectsThere are no easy workarounds for this issue since the
Results.ProblemandResults.ValidationProblemprovide a public abstraction over currently internal functionality, like setting sensible defaults for the title and type of ProblemDetails.Regression?
Risk
Low risk because:
Resultsextension methods API.ProblemDetailsalready supports having anExtensionsproperty that is validated.Verification
Packaging changes reviewed?
Background and Motivation
The
Results.ProblemandResults.Validationextension methods do not provide a way for users to customize theExtensionsproperty on the resultingProblemDetailspayload.To support these scenarios, we are adding the
extensionsparameter to the existing methods and adding new overloads that takes aProblemDetailsorHttpValidationProblemDetailsobject to provide further customizability for users.Proposed API
namespace Microsoft.AspNetCore.Http { public static class Results { public static IResult Problem( string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null, + IDictionary<string, object?>? extensions = null) { ... } + public static IResult Problem(ProblemDetails problemDetails) { ... } public static IResult ValidationProblem( IDictionary<string, string[]> errors, string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null, + IDictionary<string, object?>? extensions = null) { ... } } }Usage Examples
Addresses #36848