Я использую стратегию проверки работоспособности, которая возвращает certaing pong, когда я пингую по следующему URL-адресу.
localhost / util / ping
Это работает должен. Затем я подумал, что ленивый пользователь может пропустить ввод util или, возможно, запутаться, набрав util s , util ity или утилит ити . Это может расстраивать, особенно для новых разработчиков, которые не знают Swagger.
localhost / ping
Поэтому я решил ввести выделенный псевдо-маршрут, содержащий только ping , направленный на указанный выше URL. Насколько я могу судить, нет других маршрутов (кроме стандартного) или контроллеров с таким именем, которые могли бы конфликтовать.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "ping",
pattern: "ping",
defaults: new { controller = "util", action = "ping" });
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});
К сожалению, приведенный выше код не работает. Он выдает код состояния 404, и я не вижу, что мне не хватает, что может отличаться от примера в MSDN .
Контроллер объявлен следующим образом.
namespace Api.Controllers
{
[ApiController]
[Route("[controller]")]
public class UtilController : ControllerBase
{
[HttpGet("ping")]
public ActionResult Ping() { return Ok("pong"); }
}
}