Урок 49: Разработка RESTful сервиса
RESTful сервисы являются основой для современных веб-приложений, предоставляя интерфейс для взаимодействия между клиентом и сервером с использованием HTTP-протокола. В этом уроке мы рассмотрим, как создать простой RESTful сервис на Java с использованием Spring Boot. Мы создадим несколько эндпоинтов для обработки HTTP-запросов и возвращения ответов в формате JSON.
Создание RESTful сервиса
Для создания RESTful сервиса используем Spring Boot. Вот пример простого RESTful сервиса, который предоставляет информацию о пользователях:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class RestfulServiceApp {
 public static void main(String[] args) {
 SpringApplication.run(RestfulServiceApp.class, args);
 }
}
@RestController
class UserController {
 @GetMapping("/user/{id}")
 public User getUser(@PathVariable int id) {
 return new User(id, "User" + id);
 }
}
class User {
 private int id;
 private String name;
 public User(int id, String name) {
 this.id = id;
 this.name = name;
 }
 public int getId() {
 return id;
 }
 public String getName() {
 return name;
 }
}
 
Результат выполнения
Запустите приложение и откройте в браузере http://localhost:8080/user/1
Ответ будет: {"id":1,"name":"User1"}
 
Упражнения
Упражнение 1: Создание эндпоинта для получения списка пользователей
Создайте новый эндпоинт /users, который будет возвращать список пользователей в формате JSON. Используйте класс User для представления информации о пользователях.
Решение:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;
@RestController
class UserListController {
 @GetMapping("/users")
 public List<User> getUsers() {
 return Arrays.asList(
 new User(1, "User1"),
 new User(2, "User2"),
 new User(3, "User3")
 );
 }
}
 
Объяснение: В этом примере создается новый контроллер с эндпоинтом /users, который возвращает список пользователей в формате JSON.
 
Упражнение 2: Создание эндпоинта для добавления нового пользователя
Создайте новый эндпоинт /addUser, который будет принимать POST-запрос с JSON-данными нового пользователя и возвращать сообщение о успешном добавлении пользователя.
Решение:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
class UserAddController {
 @PostMapping("/addUser")
 public String addUser(@RequestBody User user) {
 // Здесь можно добавить логику для сохранения пользователя
 return "User " + user.getName() + " added successfully!";
 }
}
 
Объяснение: В этом примере создается новый контроллер с эндпоинтом /addUser, который принимает POST-запрос с JSON-данными нового пользователя и возвращает сообщение о успешном добавлении пользователя.