Сочетание атрибутов маршрута, чтобы шаблоны маршрутов следовали принципу DRY¶
Рассмотрим код с дублирующимися маршрутами.
public class CarController
{
[Route("api/car/start")]
[Route("api/car/ignition")]
[Route("/start-car")]
public IActionResult Start()
{
/*реализация*/
}
[Route("api/car/speed/{speed}")]
[Route("/set-speed/{speed}")]
public IActionResult SetCarSpeed(int speed)
{
/*реализация*/
}
}
Здесь
api/car содержится в большинстве маршрутов. Чтобы исправить ситуацию, можно применить атрибут [Route] к классу контроллера:[Route("api/car")]
public class CarController
{
[Route("start")]
[Route("ignition")]
[Route("/start-car")]
public IActionResult Start()
{
/*реализация*/
}
[Route("speed/{speed}")]
[Route("/set-speed/{speed}")]
public IActionResult SetCarSpeed(int speed)
{
/*реализация*/
}
}
В этом случае, если шаблон у действия не начинается с
/, шаблон действия будет объединением шаблона контроллера и шаблона действия.
Последнее обновление :
28 сентября 2022 г.
Дата создания : 28 сентября 2022 г.
Дата создания : 28 сентября 2022 г.