0
0
Lập trình
TT

Hướng dẫn Spring Boot REST API - Trả về JSON đơn giản

Đăng vào 7 tháng trước

• 5 phút đọc

Mục lục

  1. Giới thiệu
  2. Tại sao sử dụng JSON trong REST API?
  3. Các bước triển khai phản hồi JSON trong Spring Boot
  4. Khắc phục sự cố thường gặp
  5. Kết luận
  6. Câu hỏi thường gặp

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách trả về phản hồi ở định dạng JSON từ một Spring Boot REST API. Mặc định, Spring Boot trả về phản hồi ở JSON, đây là định dạng tiêu chuẩn cho hầu hết các dịch vụ RESTful. JSON được sử dụng rộng rãi nhờ vào tính nhẹ, dễ đọc và khả năng tương thích với nhiều ngôn ngữ lập trình khác nhau.

Tại sao sử dụng JSON trong REST API?

  • Nhẹ và Nhanh: Dữ liệu JSON có kích thước nhỏ gọn, giúp việc xử lý nhanh hơn so với XML.
  • Dễ đọc cho cả Con người và Máy móc: JSON có định dạng đơn giản và có cấu trúc dễ hiểu, dễ thao tác.
  • Hỗ trợ rộng rãi: JSON được hỗ trợ trên nhiều ngôn ngữ lập trình và framework khác nhau.
  • Lý tưởng cho Ứng dụng Web & Di động: JSON hoạt động tốt với JavaScript và được hỗ trợ natively trong phát triển web và di động.

Các bước triển khai phản hồi JSON trong Spring Boot

Thêm các phụ thuộc cần thiết

Spring Boot sử dụng Jackson cho việc tuần tự hóa và giải tuần tự hóa JSON. Jackson đã được bao gồm mặc định trong các starter của Spring Boot, vì vậy không cần thêm phụ thuộc nào khác. Tuy nhiên, hãy đảm bảo rằng tệp pom.xml của bạn chứa phụ thuộc cần thiết:

xml Copy
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
</dependency>

Điều này đảm bảo rằng Jackson có thể tự động chuyển đổi các đối tượng Java thành JSON và ngược lại.

Tạo lớp mô hình (DTO) cho phản hồi JSON

Chúng ta cần một lớp mô hình (DTO) đại diện cho dữ liệu phản hồi. Jackson sẽ tự động tuần tự hóa các đối tượng thành JSON.

java Copy
package com.masteringbackend.demo.dto; 

public class UserResponse { 
    private String name; 
    private int age; 
    private String email; 

    // Phương thức khởi tạo mặc định 
    public UserResponse() {} 

    // Phương thức khởi tạo có tham số 
    public UserResponse(String name, int age, String email) { 
        this.name = name; 
        this.age = age; 
        this.email = email; 
    } 

    // Getters và Setters 
     public String getName() { return name; } 
     public void setName(String name) { this.name = name; } 

     public int getAge() { return age; } 
     public void setAge(int age) { this.age = age; } 

     public String getEmail() { return email; } 
     public void setEmail(String email) { this.email = email; } 
}

Tạo bộ điều khiển REST

Tiếp theo, chúng ta tạo một bộ điều khiển REST Spring Boot để trả về phản hồi ở định dạng JSON. Chúng ta sử dụng produces = MediaType.APPLICATION_JSON_VALUE để chỉ định loại phản hồi JSON.

java Copy
package com.masteringbackend.demo.controller; 

import com.masteringbackend.demo.dto.UserResponse; 
import org.springframework.http.MediaType; 
import org.springframework.web.bind.annotation.GetMapping; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 

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

    @GetMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE) 
    public UserResponse getUser() { 
         return new UserResponse("Ayush", 25, "[email protected]"); 
     } 
}

Tạo lớp ứng dụng chính của Spring Boot

Lớp chính là cần thiết để khởi động ứng dụng Spring Boot.

java Copy
package com.masteringbackend.demo; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class DemoApplication { 
    public static void main(String[] args) { 
         SpringApplication.run(DemoApplication.class, args); 
    } 
}

Chạy ứng dụng và kiểm tra API

Khởi động ứng dụng Spring Boot, sau đó gửi yêu cầu GET sử dụng Postman, Trình duyệt hoặc Curl:

Copy
GET http://localhost:8080/api/user

Đầu ra phản hồi JSON mong đợi

Khi API được gọi, nó sẽ trả về phản hồi ở định dạng JSON như dưới đây:

json Copy
{ 
      "name": "Ayush", 
      "age": 25, 
      "email": "[email protected]" 
}

Khắc phục sự cố thường gặp

  • Lỗi: Phản hồi JSON không hiển thị?
    • Đảm bảo rằng phụ thuộc jackson-databind đã được thêm.
    • Kiểm tra xem produces = MediaType.APPLICATION_JSON_VALUE có được thiết lập chính xác trong bộ điều khiển không.
    • Sử dụng Postman và kiểm tra tiêu đề Accept; thiết lập nó thành application/json.
  • Phản hồi JSON hiển thị dưới dạng XML?
    • Nếu bạn có phụ thuộc jackson-dataformat-xml, Spring Boot có thể trả về XML.
    • Xóa bất kỳ chú thích @XmlRootElement nào từ lớp mô hình.
    • Yêu cầu rõ ràng JSON bằng cách thiết lập tiêu đề Accept thành application/json.

Kết luận

Spring Boot cung cấp một cách dễ dàng để trả về phản hồi JSON với cấu hình tối thiểu. Với thiết lập phù hợp, các API REST dựa trên JSON rất hiệu quả, nhanh chóng và dễ tích hợp với các ứng dụng web và di động hiện đại.

Câu hỏi thường gặp

1. JSON là gì và tại sao nó được sử dụng?

  • JSON (JavaScript Object Notation) là định dạng dữ liệu nhẹ, dễ đọc và dễ viết cho con người và máy móc. Nó được sử dụng rộng rãi trong phát triển web và API do tính linh hoạt và khả năng tương thích cao.

2. Làm thế nào để kiểm tra phản hồi JSON?

  • Bạn có thể sử dụng các công cụ như Postman hoặc Curl để gửi yêu cầu đến API và xem phản hồi JSON trả về từ máy chủ.

3. Có cách nào để chuyển đổi JSON thành đối tượng Java không?

  • Có, Spring Boot sử dụng Jackson để tự động chuyển đổi JSON thành các đối tượng Java thông qua các lớp mô hình (DTO) mà bạn định nghĩa.

Tài nguyên và đọc thêm

Hãy tham gia cộng đồng của chúng tôi để khám phá thêm nhiều kiến thức thú vị về lập trình và phát triển ứng dụng!

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