Improve Results.Problem and Results.ValidationProblem APIs#36856
Merged
Conversation
Member
BrennanConroy
left a comment
There was a problem hiding this comment.
Add a few smoke tests that the extensions are there and the new overloads work?
06bc3bd to
dc173b4
Compare
pranavkm
reviewed
Sep 22, 2021
halter73
reviewed
Sep 23, 2021
halter73
approved these changes
Sep 23, 2021
Co-authored-by: Stephen Halter <halter73@gmail.com>
|
"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. |
Contributor
Author
|
Closing since we decided to target |
Contributor
Author
Re-opening since this was Servicing approved for RC2. See #36884 (comment). |
10 tasks
Contributor
Author
|
@dotnet/aspnet-build Can I get help merging? |
BrennanConroy
added a commit
that referenced
this pull request
Sep 24, 2021
* Update WiX to signed build (#36865) - #12078 * Always download blazor-hotreload.js from app root (#36897) The middleware that we inject always listens to the root of the app. While this might not play very nicely if the app is running off a virtual path, listening to the root is what we do with the aspnet-browser-refresh.js script and we've had no issue reports with it thus far. Fixes #35555 * Improve Results.Problem and Results.ValidationProblem APIs (#36856) * [release/6.0-rc2] Update sdk to 6.0.100-rc.2.21470.55 (#36783) * Update sdk to 6.0.100-rc.2.21470.55 Co-authored-by: Will Godbe <wigodbe@microsoft.com> Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com> Co-authored-by: Pranav K <prkrishn@hotmail.com> Co-authored-by: Safia Abdalla <safia@microsoft.com> Co-authored-by: Stephen Halter <halter73@gmail.com> Co-authored-by: Will Godbe <wigodbe@microsoft.com> Co-authored-by: Brennan <brecon@microsoft.com>
captainsafia
pushed a commit
that referenced
this pull request
Sep 24, 2021
captainsafia
pushed a commit
that referenced
this pull request
Sep 24, 2021
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 desirable workarounds for this issue since the
Results.ProblemandResults.ValidationProblemprovide a public abstraction over a lot of currently internal functionality, like setting sensible defaults for the title and type of ProblemDetails.Regression?
Risk
Low risk because:
Resultsextension methods API.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
Fixes #36848