Ответ
REST (Representational State Transfer) — архитектурный стиль для распределенных систем, основанный на следующих ключевых принципах:
- Ресурсы и URI: Все сущности (пользователи, заказы) представляются как ресурсы с уникальными идентификаторами (URI), например
/api/usersили/api/orders/123. - Единообразный интерфейс (HTTP-методы): Действия определяются стандартными HTTP-методами:
GET— получение ресурса.POST— создание нового ресурса.PUT— полное обновление ресурса.DELETE— удаление ресурса.PATCH— частичное обновление.
- Stateless (без состояния): Каждый запрос от клиента содержит всю необходимую информацию для его обработки. Сервер не хранит состояние сессии между запросами.
- Кэширование: Ответы должны явно указывать, можно ли их кэшировать, для повышения производительности.
- Коды состояния HTTP: Использование стандартных кодов для информирования о результате (200 OK, 201 Created, 404 Not Found, 500 Internal Server Error).
Пример REST-контроллера на Spring Boot:
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
// Логика получения пользователя
return ResponseEntity.ok(user);
}
@PostMapping
public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
// Логика создания
return ResponseEntity.status(HttpStatus.CREATED)
.body(savedUser);
}
}
Почему это важно: REST обеспечивает стандартизацию, масштабируемость и простоту интеграции между различными системами.