Статьи

Spring Boot: создание веб-приложения RESTful

Вступление:

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, являются их собственными.