介绍:
REST代表表示状态传输 ,是API设计的体系结构指南。 我们假设您已经具有构建RESTful API的背景。
在本教程中,我们将设计一个简单的Spring Boot RESTful Web应用程序,公开一些REST端点。
项目设置:
让我们首先通过Spring Initializr下载项目模板:
对于RESTful Web应用程序,我们只需要添加“ Spring Web”作为额外的入门依赖。 假设我们也在与数据库进行交互,则添加了其他两个。
现在,我们的POM文件将具有所有需要的Web应用程序和数据库依赖性:
<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控制器:
@RestController
@RequestMapping("/student")
public class StudentController {@Autowiredprivate 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(@RequestBodyStudent student) {Student newStudent = studentService.store(student);return new ResponseEntity<Student>(newStudent, HttpStatus.CREATED);}...
}
我们可以在控制器中定义所有的GET,POST,DELETE或PUT映射。
服务:
在这里, StudentService是与数据库交互并为我们执行所有操作的类:
@Service
public class StudentService {@Autowiredprivate StudentRepository repo;public Student store(Student student) {return repo.save(student);}public List<Student> getAllStudents() {return repo.findAll();}...}
我们还有另一本教程,说明如何使用Spring Boot配置H2数据库。
运行应用程序:
最后,我们可以运行我们的UniversityApplication类:
@SpringBootApplication
public class UniversityApplication {public static void main(String[] args) {SpringApplication.run(UniversityApplication.class, args);}
}
通过它,我们的REST端点将在嵌入式服务器上公开。
测试REST端点:
让我们使用cURL来测试我们的REST端点:
$ curl http://localhost:8080/student/all
这将返回数据库中存在的所有学生记录:
[{1, "James"}, {2, "Selena"}, {3, "John"}]
同样,我们有:
$ curl http://localhost:8080/student/1
{1, "James"}
我们还可以使用POSTman工具来测试我们的端点。 它具有出色的用户界面。
结论:
在本教程中,我们从头开始构建了一个Spring Boot RESTful应用程序。 我们公开了一些API,然后使用cURL对其进行了测试。
翻译自: https://www.javacodegeeks.com/2019/09/spring-boot-building-restful-web-application.html