Junior — Middle
Wat betekent het dat een controller de principes van REST implementeert en hoe bepaal je een RESTful controller in een project?
sobes.tech AI
Antwoord van AI
Контроллер, реализующий принципы REST, следует архитектурному стилю REST (Representational State Transfer), который подразумевает:
- Использование HTTP-методов (GET, POST, PUT, DELETE и др.) для операций над ресурсами.
- Идентификация ресурсов через URI.
- Отсутствие состояния на сервере между запросами (stateless).
- Использование стандартных кодов ответа HTTP.
- Передача данных в формате JSON, XML или других.
В C# RESTful контроллер обычно определяется с помощью атрибута [ApiController] и маршрутизации с использованием [Route]. Методы контроллера соответствуют HTTP-методам через атрибуты [HttpGet], [HttpPost] и т.д.
Пример RESTful контроллера в ASP.NET Core:
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult GetAll() { /* вернуть список продуктов */ }
[HttpGet("{id}")]
public IActionResult GetById(int id) { /* вернуть продукт по id */ }
[HttpPost]
public IActionResult Create(Product product) { /* создать продукт */ }
[HttpPut("{id}")]
public IActionResult Update(int id, Product product) { /* обновить продукт */ }
[HttpDelete("{id}")]
public IActionResult Delete(int id) { /* удалить продукт */ }
}
Такой контроллер соответствует REST, так как оперирует ресурсами через HTTP-методы и URI, не хранит состояние между запросами и возвращает стандартные ответы.