Введение

Экосистема Java всегда была динамичной, когда речь шла о средах для создания веб-приложений. Среди них Spring MVC выделяется своей надежностью и простотой интеграции с другими технологиями. Ключевым аспектом Spring MVC является его управляемая аннотациями природа, что делает обработку HTTP-запросов интуитивно понятной.

В этом посте мы углубимся в понимание четырех часто используемых аннотаций в Spring MVC для операций HTTP: @GetMapping, @PostMapping, @PutMapping и @DeleteMapping.

Обзор методов HTTP

Прежде чем углубляться в сами аннотации, важно понять, какие HTTP-методы они представляют:

  • GET: извлекает данные. Он безопасен и идемпотентен, что означает, что повторные запросы дают один и тот же результат. Он только извлекает данные и не имеет других побочных эффектов.
  • POST: отправляет данные для обработки. Это не безопасно и не идемпотентно. Обычно используется для создания ресурсов.
  • PUT: обновляет или создает данные. Идемпотент, но небезопасен. Обычно используется для обновления существующих ресурсов или их создания, если они не существуют.
  • DELETE: удаляет данные. Идемпотент, но небезопасен. Используется для удаления ресурсов.

@GetMapping

Эта аннотация является ярлыком для @RequestMapping(method = RequestMethod.GET).

Если вы хотите обработать запрос GET, вы используете @GetMapping.

Пример:

@RestController
public class UserController {

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        // Logic to fetch a user by id
        return userService.getUserById(id);
    }
}

@PostMapping

Это альтернатива @RequestMapping(method = RequestMethod.POST).

Используется в основном для создания новых ресурсов.

Пример:

@RestController
public class UserController {

    @PostMapping("/users")
    public User createUser(@RequestBody User user) {
        // Logic to save a user
        return userService.saveUser(user);
    }
}