Skip to content

Malformed response w/ ProblemDetails (AutoWrapper 4.5) #136

@nwoolls

Description

@nwoolls

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions