JSON & HTTP Status Codes – Nền tảng quan trọng khi làm REST API

khi là việc với REST API client và server cần hai thứ quan trọng:

  1. JSON để trao đổi dữ liệu
  2. HTTP Status Codes là hiển thị trạng thái có biết request đã xảy ra chuyện gì

1. JSON là gì?

JSON là viết tắt của JavaScript Object Notation

JSON là một format dùng để biểu diễn và trao đổi dữ liệu.

Ví dụ:

{
  "id": 123,
  "name": "An",
  "email": "[email protected]"
}

JSON rất phổ biến trong REST API vì:

  • dễ đọc
  • dễ viết
  • kích thước tương đối nhỏ
  • nhiều ngôn ngữ hỗ trợ
  • frontend và backend đều dễ xử lý

2. JSON Object

JSON object được bao bởi {}

Ví dụ:

{
  "name": "An",
  "age": 20
}

Mỗi property có dạng:

"key": value

Ví dụ:

"name": "An"

3. Nested Object

JSON có thể chứa object bên trong object.

Ví dụ:

{
  "id": 123,
  "name": "An",
  "address": {
    "city": "Ho Chi Minh City",
    "country": "Vietnam"
  }
}

4. JSON trong HTTP Request

Client có thể gửi JSON lên server.

Ví dụ:

POST /users HTTP/1.1
Content-Type: application/json

Body:

{
  "name": "An",
  "email": "[email protected]"
}

Header:

Content-Type: application/json

cho server biết Request body đang chứa JSON.

5. HTTP Status Code là gì?

HTTP Status Code là mã số server trả về để cho client biết kết quả xử lý request. hoặc dễ hiểu hơn nó là con số để thể hiện trạng thái kết quả từ server trả về.

Ví dụ:

200 OK

hoặc:

404 Not Found

hoặc:

500 Internal Server Error

Status Code gồm 3 chữ số.

Chữ số đầu tiên cho biết nhóm kết quả.

1xx → Informational
2xx → Success
3xx → Redirection
4xx → Client Error
5xx → Server Error

Trong REST API, quan trọng nhất là:

2xx
4xx
5xx

6. Tóm lại

JSON và HTTP Status Code là hai thành phần cực kỳ quan trọng trong REST API.

JSON chịu trách nhiệm biểu diễn dữ liệu:

{
  "id": 123,
  "name": "An"
}

HTTP Status Code cho biết kết quả của request:

200
201
204
400
401
403
404
409
422
500

Một API tốt không chỉ trả dữ liệu đúng mà còn phải sử dụng HTTP semantics hợp lý.

Ví dụ:

GET /users/123
        ↓
User tồn tại
        ↓
200 OK
        ↓
JSON user

Hoặc:

GET /users/999
        ↓
User không tồn tại
        ↓
404 Not Found
        ↓
JSON error

Hoặc:

POST /users
        ↓
Tạo user thành công
        ↓
201 Created
        ↓
JSON user mới

Bài viết khác

Series 7 — Web Quality – Engineering :Testing – Unit Testing, Integration Testing, Web Performance – Core Web Vitals, Code Splitting, Lazy Loading

Series 7 — Web Quality – Engineering Bài 3: Testing – Unit Testing, Integration Testing và End-to-End Testing trong ứng dụng web 1. Vì sao ứng dụng web cần Testing? Trong quá trình phát triển Frontend, chúng ta thường kiểm tra ứng dụng bằng cách chạy website trên trình duyệt, nhấn vào các nút, nhập […]

Series 7 — Web Quality – Engineering : Authentication & Authorization

Series 7 — Web Quality – Engineering Bài 1: Authentication & Authorization – Xác thực và phân quyền trong ứng dụng web 1. Mở đầu Khi xây dựng một ứng dụng web có chức năng đăng nhập, chúng ta thường nghĩ rằng chỉ cần tạo biểu mẫu nhập email, mật khẩu và kiểm tra thông […]

Series 6 – Next.js Advanced – Production: Next.js Build & Deployment

Series 6 – Next.js Advanced & Production Bài 5: Next.js Build & Deployment – Từ mã nguồn đến môi trường Production 1. Mở đầu Trong quá trình phát triển một ứng dụng web, việc chạy thành công trên máy tính cá nhân chưa có nghĩa là ứng dụng đã sẵn sàng để đưa đến người […]

Series 6 – Next.js Advanced – Production: Next.js Internationalized Routing Next.js Static Export

Series 6 – Next.js Advanced & Production   Bài 3: Next.js Internationalized Routing – Tổ chức URL cho website đa ngôn ngữ 1. Mở đầu Sau khi xây dựng cơ chế dịch nội dung và định dạng theo locale, ứng dụng cần một cách để người dùng truy cập đúng phiên bản ngôn ngữ. Ví […]

Series 6 – Next.js Advanced & Production: Metadata & SEO, Internationalization (i18n) & Localization (l10n)

Series 6 – Next.js Advanced & Production Bài 1: Metadata & SEO trong Next.js – Tối ưu thông tin và khả năng hiển thị trên công cụ tìm kiếm 1. Mở đầu Khi xây dựng một website, việc hoàn thiện giao diện và chức năng mới chỉ là một phần của quá trình phát triển. […]

Series 5 – Next.js Fundamentals: CSR, SSR, SSG, ISR và cách lựa chọn

Series 5 – Next.js Fundamentals   Bài 7 : CSR, SSR, SSG và ISR – Các chiến lược Rendering trong Next.js 1. Mở đầu Khi xây dựng một website bằng React, chúng ta thường tập trung vào việc tạo component, quản lý state và hiển thị giao diện trên trình duyệt. Tuy nhiên, khi ứng dụng […]

Leave a Reply

Your email address will not be published. Required fields are marked *