0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng Dẫn Tạo RESTful APIs Bằng Java Spring Boot Và MySQL

Đăng vào 2 tuần trước

• 4 phút đọc

Chủ đề:

JavaSpring Boot

Giới Thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo một RESTful API đơn giản bằng Java Spring Boot sử dụng MySQL làm cơ sở dữ liệu. Hướng dẫn này sẽ từng bước dẫn dắt bạn từ việc thiết lập môi trường phát triển đến việc triển khai API hoàn chỉnh.

Bước 1: Chuẩn Bị Môi Trường

Để bắt đầu, bạn cần chuẩn bị các công cụ sau:

  • Java Development Kit (JDK): Cài đặt phiên bản mới nhất của JDK để phát triển ứng dụng Java.
  • IDE Java: Sử dụng IntelliJ IDEA hoặc một IDE khác mà bạn thích để hỗ trợ phát triển.
  • MySQL: Cài đặt MySQL để sử dụng làm cơ sở dữ liệu.

Bước 2: Tạo Dự Án Spring Boot Mới

Bạn có thể dễ dàng tạo một dự án Spring Boot mới bằng cách truy cập Spring Initializr hoặc sử dụng trực tiếp IntelliJ IDEA để khởi tạo dự án với các cấu hình cơ sở cần thiết.

Bước 3: Tạo Model User

Tiếp theo, bạn sẽ tạo một model cho người dùng. Đây là cấu trúc mà bạn sẽ lưu trữ trong cơ sở dữ liệu.

java Copy
import javax.persistence.*;

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String username;

    @Column(nullable = false)
    private String password;

    // Các phương thức khởi tạo, getter, setter
}

Bước 4: Tạo UserRepository

Chúng ta sẽ sử dụng một repository để tương tác vớiฐาน dữ liệu.

java Copy
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

Bước 5: Tạo Controller

Controller sẽ xử lý các yêu cầu HTTP và gọi các phương thức từ repository để lấy dữ liệu.

java Copy
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable(value = "id") Long userId) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));
        return ResponseEntity.ok().body(user);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @PutMapping("/{id}")
    public ResponseEntity<User> updateUser(@PathVariable(value = "id") Long userId,
                                           @RequestBody User userDetails) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));

        user.setUsername(userDetails.getUsername());
        user.setPassword(userDetails.getPassword());

        final User updatedUser = userRepository.save(user);
        return ResponseEntity.ok(updatedUser);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable(value = "id") Long userId) {
        User user = userRepository.findById(userId)
                .orElseThrow(() -> new ResourceNotFoundException("User not found with id: " + userId));
        userRepository.delete(user);
        return ResponseEntity.ok().build();
    }
}

Bước 6: Tạo Exception Handler

Chúng ta cần xử lý các trường hợp ngoại lệ khi người dùng không được tìm thấy.

java Copy
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;

@ResponseStatus(value = HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
    public ResourceNotFoundException(String message) {
        super(message);
    }
}

Bước 7: Cấu Hình Cơ Sở Dữ Liệu MySQL

Bạn cần thêm cấu hình kết nối MySQL vào file application.properties.

Copy
spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

Bước 8: Chạy Ứng Dụng

Cuối cùng, hãy chạy ứng dụng Spring Boot của bạn. Bạn sẽ có một RESTful API đơn giản để quản lý người dùng thông qua MySQL.

Kết Luận

Hướng dẫn này chỉ là bước khởi đầu. Bạn có thể mở rộng thêm các tính năng như xác thực người dùng, phân quyền truy cập, sử dụng JWT để bảo mật, và nhiều tính năng nâng cao khác. Chúc bạn thành công trên hành trình phát triển ứng dụng của mình!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào