Spring Boot Cơ bản: Xây dựng REST API
Spring Boot là framework Java phổ biến nhất để xây dựng ứng dụng web và microservices. Hãy cùng tạo REST API đầu tiên!
1. Spring Boot là gì?
Spring Boot giúp đơn giản hóa việc phát triển ứng dụng Spring bằng cách:
- Auto-configuration - Tự động cấu hình
- Embedded server - Không cần cài Tomcat riêng
- Starter dependencies - Quản lý dependencies dễ dàng
- Production-ready features - Sẵn sàng cho production
2. Tạo Project
Sử dụng Spring Initializr (start.spring.io) để tạo project với:
- Spring Web - Cho REST API
- Spring Data JPA - Làm việc với database
- H2 Database - Database trong bộ nhớ để test
3. Tạo Model (Entity)
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// Constructors, Getters, Setters
public User() {}
public User(String name, String email) {
this.name = name;
this.email = email;
}
// Getters và Setters...
}
4. Tạo Repository
public interface UserRepository extends JpaRepository<User, Long> {
// Spring Data JPA tự động implement
// các method cơ bản: save, findById, findAll, delete...
// Custom queries
List<User> findByName(String name);
Optional<User> findByEmail(String email);
}
5. Tạo REST Controller
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
// GET tất cả users
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
// GET user theo ID
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
}
// POST tạo user mới
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
// PUT cập nhật user
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User userDetails) {
User user = userRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
user.setName(userDetails.getName());
user.setEmail(userDetails.getEmail());
return userRepository.save(user);
}
// DELETE xóa user
@DeleteMapping("/{id}")
public ResponseEntity<?> deleteUser(@PathVariable Long id) {
User user = userRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("User not found"));
userRepository.delete(user);
return ResponseEntity.ok().build();
}
}
6. Chạy ứng dụng
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Sau khi chạy, API sẽ có sẵn tại: http://localhost:8080/api/users
7. Test API với cURL
# Tạo user mới
curl -X POST http://localhost:8080/api/users \\
-H "Content-Type: application/json" \\
-d '{"name":"Huy","email":"huy@example.com"}'
# Lấy tất cả users
curl http://localhost:8080/api/users
# Lấy user theo ID
curl http://localhost:8080/api/users/1
Kết luận
Bạn đã tạo được REST API đầu tiên với Spring Boot! Framework này rất mạnh mẽ với nhiều tính năng khác như Security, Validation, Exception Handling... Hãy tiếp tục khám phá!