Не обрабатывает API роуты
Проблема заключается в необработке роутев (api/support-requests) запросами GET.
Конфигурация конечной точки:
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health").RequireAuthorization();
endpoints.MapHub<ChatHub>("/hubs/chat");
endpoints.MapControllers();
endpoints.MapFallbackToFile("/test.html");
});
Не обрабатывается тогда, когда подключен метод MapFallbackToFile("/test.html").
Файл test.html
<!DOCTYPE html>
<html>
<head>
<title>tEST</title>
<meta charset=utf-8>
</head>
<body>
<h1>TEST</h1>
</body>
</html>
SupportRequestsController:
[Authorize(Roles = Roles.Support)]
[Route("api/support-requests")]
public class SupportRequestsController : WebApiControllerBase
{
[HttpGet("new-request")]
[SwaggerResponse(StatusCodes.Status200OK, "200", typeof(Response<SupportRequestDto>))]
public async Task<IActionResult> GetNewRequest()
{
var response = await Mediator.Send(new GetNewSupportRequestQuery());
return Json(response);
}
[HttpGet("active-requests")]
[SwaggerResponse(StatusCodes.Status200OK, "200", typeof(Response<IEnumerable<SupportRequestDto>>))]
public async Task<IActionResult> GetActiveRequests()
{
var response = await Mediator.Send(new GetActiveRequestsQuery());
return Json(response);
}
[HttpGet("number-of-pending-requests")]
[SwaggerResponse(StatusCodes.Status200OK, "200", typeof(Response<int>))]
public async Task<IActionResult> GetNumberOfPendingRequests()
{
return Json(await Mediator.Send(new GetNumberOfPendingRequestsQuery()));
}
[HttpPut("close-request/{id}")]
public async Task<IActionResult> CloseRequest(Guid id)
{
return Json(await Mediator.Send(new CloseSupportRequestCommand { Id = id }));
}
}
WebApiControllerBase:
[ApiController]
[Route("api/[controller]")]
[Consumes(MediaTypeNames.Application.Json)]
[Produces(MediaTypeNames.Application.Json)]
public abstract class WebApiControllerBase : Controller
{
private IMediator _mediator;
protected IMediator Mediator => _mediator ??= HttpContext.RequestServices.GetService<IMediator>();
}
Пример запроса:
curl --location --request GET 'http://localhost:123123/api/support-requests/active-requests' \
Ответ:
Но если закомментирую метод в конфигурации //MapFallbackToFile("/test.html")
Ответ:
Почему роуты не работают совместно, как должны? В чем проблема или моя ошибка?
UPDATE
Раньше не было необходимости в этом, добавил паттерн и заработало.
endpoints.MapFallbackToFile("/", "/test.html");

