AutoWrapper reached 14k downloads and 166 stars today. Big thanks to everyone who have supported it! I truly appreciate it. :)

Today, AutoWrapper 4.1.0 has been released with newly features added based on community feedback. Here are the newly features added:

  • [NEW] Added RequestDataLogIgnore Attribute. This addresses issue #37.
  • [NEW] Added ShouldLogRequestData property in AutoWrapIgnore Attribute. This addresses issue #37 as well.
  • [NEW] Added LogRequestDataOnException Option.
  • [NEW] Added BypassHTMLValidation check when IsApiOnly is true. This addresses issue #41.
  • [RFT] Code Cleanup and Refactoring.


You can use the [RequestDataLogIgnore] if you don't want certain endpoints to log the data in the requests:

public async Task<ApiResponse> Post([FromBody] CreatePersonRequest personRequest)
    if (!ModelState.IsValid)
        throw new ApiException(ModelState.AllErrors());

    return new ApiResponse("Record successfully created.", 
                            await _repo.CreateAsync(personRequest), 

You can use the [AutoWrapIgnore] attribute and set ShouldLogRequestData property to false if you have an endpoint that don't need to be wrapped and also don't want to log the data in the requests:

[AutoWrapIgnore(ShouldLogRequestData = false)]
public async Task<IEnumerable<PersonResponse>> Get()
     // Rest of the code here

You can set the LogRequestDataOnException option to false if you want to exclude the request body data in the logs when an exception occurs.

app.UseApiResponseAndExceptionWrapper(new AutoWrapperOptions { 
    LogRequestDataOnException = false 

Feel free to request an issue on github if you find bugs or request a new feature. Your valuable feedback is much appreciated to better improve this project. If you find this useful, please give it a star to show your support on this project!