Trong bài Hướng dẫn sử dụng Spring Boot để tạo Restful API sẽ sử dụng Spring Boot, JPA và MySQL để tạo API hỗ trợ 4 tính năng cơ bản đó là thêm (C), xem (R), cập nhật (U) và xoá (D).
RESTFul API mà chúng tôi tạo với mục đích xem, thêm, xoá và sửa thông tin nhân viên. Thông tin mỗi nhân viên bao gồm họ (firstName), tên (lastName) và địa chỉ email.
Kết quả sau khi tạo RESTFul API thành công sẽ như sau:
Hướng dẫn sử dụng Spring Boot để tạo Restful API – Các bước thực hiện
1/ Tạo một Spring Boot Application
Chúng ta truy cập https://start.spring.io/ và thao tác như trong hình bên dưới
Các bạn lưu ý ngay sau khi chúng ta import vào, eclipse sẽ tiến hành download những dependency mà chúng ta đã khai báo. Do đó, máy tính phải có kết nối internet
Project sau khi import vào eclipse
3/ Tạo một model là Java class và đặt tên Employee
Nhập code cho Employee.java
4/ Tạo một repository là Java Interface và đặt tên EmployeeRepository
Nhập code cho EmployeeRepository.java
5/ Tạo một exception là một Java class và đặt tên ResourceNotFoundExceptionNhập code cho ResourceNotFoundException.java
package vn.giasutinhoc.restfulapi.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import vn.giasutinhoc.restfulapi.exception.ResourceNotFoundException; import vn.giasutinhoc.restfulapi.model.Employee; import vn.giasutinhoc.restfulapi.repository.EmployeeRepository; @RestController @RequestMapping("api/v1") public class EmployeeController { @Autowired private EmployeeRepository employeeRepository; @GetMapping("employees") public List<Employee> getAllEmployees() { return employeeRepository.findAll(); } @GetMapping("employees/{id}") public ResponseEntity<Employee> getEmployeeById(@PathVariable(value = "id") Long employeeId) throws ResourceNotFoundException { Employee employee = employeeRepository.findById(employeeId) .orElseThrow(() -> new ResourceNotFoundException("Nhân viên này không tồn tại: " + employeeId)); return ResponseEntity.ok().body(employee); } @PostMapping("employees") public Employee createEmployee(@Valid @RequestBody Employee employee) { return employeeRepository.save(employee); } @PutMapping("employees/{id}") public ResponseEntity<Employee> updateEmployee(@PathVariable(value = "id") Long employeeId, @Valid @RequestBody Employee employeeDetails) throws ResourceNotFoundException { Employee employee = employeeRepository.findById(employeeId) .orElseThrow(() -> new ResourceNotFoundException("Nhân viên này không tồn tại: " + employeeId)); employee.setEmail(employeeDetails.getEmail()); employee.setLastName(employeeDetails.getLastName()); employee.setFirstName(employeeDetails.getFirstName()); final Employee updatedEmployee = employeeRepository.save(employee); return ResponseEntity.ok(updatedEmployee); } @DeleteMapping("/employees/{id}") public Map<String, Boolean> deleteEmployee(@PathVariable(value = "id") Long employeeId) throws ResourceNotFoundException { Employee employee = employeeRepository.findById(employeeId) .orElseThrow(() -> new ResourceNotFoundException("Nhân viên này không tồn tại: " + employeeId)); employeeRepository.delete(employee); Map<String, Boolean> response = new HashMap<>(); response.put("deleted", Boolean.TRUE); return response; } }
Hướng dẫn sử dụng Spring Boot để tạo Restful API – Build, Deploy và Run
1/ Cài đặt Spring Tools
Chọn Help -> chọn Eclipse Marketplace… -> chọn Spring Tools -> chọn Install
Chọn Confirm
0 Response to "Hướng dẫn sử dụng Spring Boot để tạo Restful API"
Post a Comment