Вступление:
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
|
@Service public 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
|
@SpringBootApplication public 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, являются их собственными. |