diff --git a/src/Examples/JsonApiDotNetCoreExample/Controllers/Restricted/ReadOnlyController.cs b/src/Examples/JsonApiDotNetCoreExample/Controllers/Restricted/ReadOnlyController.cs index 2515b1ea7a..66e67fc9d6 100644 --- a/src/Examples/JsonApiDotNetCoreExample/Controllers/Restricted/ReadOnlyController.cs +++ b/src/Examples/JsonApiDotNetCoreExample/Controllers/Restricted/ReadOnlyController.cs @@ -1,12 +1,23 @@ +using JsonApiDotNetCore.Configuration; using JsonApiDotNetCore.Controllers; +using JsonApiDotNetCore.Services; +using JsonApiDotNetCoreExample.Models; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; namespace JsonApiDotNetCoreExample.Controllers.Restricted { - [Route("[controller]")] + [DisableRoutingConvention, Route("[controller]")] [HttpReadOnly] - public class ReadOnlyController : ControllerBase + public class ReadOnlyController : BaseJsonApiController
{ + public ReadOnlyController( + IJsonApiOptions jsonApiOptions, + ILoggerFactory loggerFactory, + IResourceService
resourceService) + : base(jsonApiOptions, loggerFactory, resourceService) + { } + [HttpGet] public IActionResult Get() => Ok(); @@ -20,10 +31,17 @@ public class ReadOnlyController : ControllerBase public IActionResult Delete() => Ok(); } - [Route("[controller]")] + [DisableRoutingConvention, Route("[controller]")] [NoHttpPost] - public class NoHttpPostController : ControllerBase + public class NoHttpPostController : BaseJsonApiController
{ + public NoHttpPostController( + IJsonApiOptions jsonApiOptions, + ILoggerFactory loggerFactory, + IResourceService
resourceService) + : base(jsonApiOptions, loggerFactory, resourceService) + { } + [HttpGet] public IActionResult Get() => Ok(); @@ -37,10 +55,17 @@ public class NoHttpPostController : ControllerBase public IActionResult Delete() => Ok(); } - [Route("[controller]")] + [DisableRoutingConvention, Route("[controller]")] [NoHttpPatch] - public class NoHttpPatchController : ControllerBase + public class NoHttpPatchController : BaseJsonApiController
{ + public NoHttpPatchController( + IJsonApiOptions jsonApiOptions, + ILoggerFactory loggerFactory, + IResourceService
resourceService) + : base(jsonApiOptions, loggerFactory, resourceService) + { } + [HttpGet] public IActionResult Get() => Ok(); @@ -54,10 +79,17 @@ public class NoHttpPatchController : ControllerBase public IActionResult Delete() => Ok(); } - [Route("[controller]")] + [DisableRoutingConvention, Route("[controller]")] [NoHttpDelete] - public class NoHttpDeleteController : ControllerBase + public class NoHttpDeleteController : BaseJsonApiController
{ + public NoHttpDeleteController( + IJsonApiOptions jsonApiOptions, + ILoggerFactory loggerFactory, + IResourceService
resourceService) + : base(jsonApiOptions, loggerFactory, resourceService) + { } + [HttpGet] public IActionResult Get() => Ok(); diff --git a/src/JsonApiDotNetCore/Middleware/DefaultExceptionFilter.cs b/src/JsonApiDotNetCore/Middleware/DefaultExceptionFilter.cs index 242106f7d1..78acd1ca8a 100644 --- a/src/JsonApiDotNetCore/Middleware/DefaultExceptionFilter.cs +++ b/src/JsonApiDotNetCore/Middleware/DefaultExceptionFilter.cs @@ -1,3 +1,4 @@ +using JsonApiDotNetCore.Extensions; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; @@ -17,12 +18,15 @@ public DefaultExceptionFilter(IExceptionHandler exceptionHandler) public void OnException(ExceptionContext context) { - var errorDocument = _exceptionHandler.HandleException(context.Exception); - - context.Result = new ObjectResult(errorDocument) + if (context.HttpContext.IsJsonApiRequest()) { - StatusCode = (int) errorDocument.GetErrorStatusCode() - }; + var errorDocument = _exceptionHandler.HandleException(context.Exception); + + context.Result = new ObjectResult(errorDocument) + { + StatusCode = (int) errorDocument.GetErrorStatusCode() + }; + } } } }