Ответ
Да, проект был RESTful-сервисом на Spring Boot, соответствующим ключевым принципам REST.
Реализованные принципы:
- Единообразие интерфейса: Использование стандартных HTTP-методов.
GET— получение ресурса.POST— создание.PUT— полное обновление.DELETE— удаление.
- Статус-коды: Корректные HTTP-ответы (200 OK, 201 Created, 404 Not Found, 400 Bad Request).
- Ресурсо-ориентированность: URL представляют сущности (например,
/api/users). - Передача состояния (HATEOAS): В ответы включались ссылки на связанные действия.
Пример контроллера:
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
UserResponse user = userService.findById(id);
return ResponseEntity.ok(user); // 200 OK
}
@PostMapping
public ResponseEntity<UserResponse> createUser(@Valid @RequestBody CreateUserRequest request) {
UserResponse newUser = userService.create(request);
URI location = ServletUriComponentsBuilder
.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(newUser.getId()).toUri();
return ResponseEntity.created(location).body(newUser); // 201 Created
}
}
Дополнительно:
- Формат данных: JSON для запросов и ответов.
- Аутентификация: JWT-токены, передаваемые в заголовке
Authorization: Bearer <token>. - Документация: OpenAPI (Swagger) для описания API.