Вступление:
REST расшифровывается как Передача представительского состояния и является архитектурным руководством для проектирования API. Мы предполагаем, что у вас уже есть опыт создания API RESTful.
В этом руководстве мы разработаем простое веб-приложение Spring Boot RESTful, в котором будут представлены несколько конечных точек REST.
Настройка проекта:

Начнем с загрузки шаблона проекта через Spring Initializr:
Нам нужно только добавить Spring Web в качестве дополнительной начальной зависимости для веб-приложений RESTful. Мы добавили два других, предполагая, что мы также взаимодействуем с базой данных.
POM файл:
Наш POM- файл теперь будет иметь все необходимые зависимости веб-приложения и базы данных:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
 | 
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId></dependency><dependency>     <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency>    <groupId>com.h2database</groupId>    <artifactId>h2</artifactId>    <scope>runtime</scope></dependency> | 
Контроллер REST:
Давайте теперь определим наш контроллер REST:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
 | 
@RestController@RequestMapping("/student")public class StudentController {      @Autowired    private StudentService studentService;      @GetMapping("/all")    public ResponseEntity<List<Student>> getAllStudents() {        return new ResponseEntity<List<Student>>(studentService.getAllStudents()            , HttpStatus.OK);    }      @GetMapping("/{id}")     public ResponseEntity<Student> getStudentById(@PathVariable("id") Integer id) {        Optional<Student> student = studentService.getById(id);        if(student.isPresent())            return new ResponseEntity<Student>(student.get(), HttpStatus.OK);        else            throw new ResponseStatusException(HttpStatus.NOT_FOUND              , "No student found!");     }      @PostMapping("/")    public ResponseEntity<Student> createStudent(@RequestBody     Student student) {        Student newStudent = studentService.store(student);        return new ResponseEntity<Student>(newStudent, HttpStatus.CREATED);    }         ...} | 
Мы можем определить все наши отображения GET, POST, DELETE или PUT в нашем контроллере.
Обслуживание:
Здесь StudentService — это класс, взаимодействующий с базой данных и выполняющий за нас все операции:
| 
 01 
02 
03 
04 
05 
06 
07 
08 
09 
10 
11 
12 
13 
14 
15 
16 
 | 
@Servicepublic class StudentService {    @Autowired    private StudentRepository repo;         public Student store(Student student) {        return repo.save(student);    }      public List<Student> getAllStudents() {        return repo.findAll();    }      ...  } | 
У нас есть еще одно руководство, объясняющее, как настроить базу данных H2 с помощью Spring Boot.
Запуск приложения:
Наконец, мы можем запустить наш класс UniversityApplication :
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
@SpringBootApplicationpublic class UniversityApplication {      public static void main(String[] args) {        SpringApplication.run(UniversityApplication.class, args);    }} | 
С помощью которого наши конечные точки REST будут отображаться на встроенном сервере.
Тестирование конечных точек REST:
Давайте используем cURL для проверки нашей конечной точки REST:
| 
 1 
 | 
$ curl http://localhost:8080/student/all | 
Это вернет все записи о студентах, присутствующие в нашей базе данных:
| 
 1 
 | 
[{1, "James"}, {2, "Selena"}, {3, "John"}] | 
Аналогично имеем:
| 
 1 
2 
 | 
$ curl http://localhost:8080/student/1{1, "James"} | 
Мы также можем использовать инструмент POSTman для проверки наших конечных точек. У него отличный пользовательский интерфейс.
Вывод:
В этом руководстве мы с нуля создали приложение Spring Boot RESTful. Мы представили несколько API, а затем протестировали их с помощью cURL.
| 
 Опубликовано на Java Code Geeks с разрешения Шубхры Шриваставы, партнера нашей программы JCG . См. Оригинальную статью здесь: Spring Boot: создание веб-приложения RESTful. Мнения, высказанные участниками Java Code Geeks, являются их собственными.  |