AutoWrapper
AutoWrapper copied to clipboard
Malformed response w/ ProblemDetails (AutoWrapper 4.5)
I am attempting to work around the issues reported in #135 and #133 by using AutoWrapper 4.5 w/ the ProblemDetails response. However, I am running into issues with that configuration. Specifically, when the .NET stack / middleware returns ProblemDetails rather than my own controller code, the response is malformed.
You can reproduce this with the following steps.
From the command line:
dotnet --version
6.0.101
mkdir autowrapper-problemdetails-issue
cd autowrapper-problemdetails-issue/
dotnet new webapi
dotnet add package AutoWrapper.Core --version 4.5.0
Edit Program.cs and add:
var options = new AutoWrapperOptions
{
IsDebug = app.Environment.IsDevelopment(),
UseApiProblemDetailsException = true
};
app.UseApiResponseAndExceptionWrapper(options);
Edit WeatherForecastController.cs and add:
public class InputModel
{
[Required(AllowEmptyStrings = false)]
public string? FirstName { get; set; }
}
[HttpPost]
public IActionResult Post(InputModel inputModel)
{
return StatusCode(StatusCodes.Status201Created);
}
Example 1 - response is malformed
curl -X 'POST' \
'https://localhost:7265/WeatherForecast' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{}'
{
"type": [],
"title": [],
"status": [],
"traceId": [],
"errors": [
[
[
[]
]
]
]
}
Example 2 - response is malformed
curl -X 'POST' \
'https://localhost:7265/WeatherForecast' \
-H 'accept: */*' \
-d '{
"firstName": "string"
}'
{
"type": [],
"title": [],
"status": [],
"traceId": []
}
Thanks in advance for your guidance!