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

API Validation – Kiểm tra và bảo vệ dữ liệu đầu vào

1. API Validation là gì? API Validation là quá trình kiểm tra dữ liệu mà Client gửi lên API có đúng định dạng, đúng kiểu dữ liệu và hợp lệ theo business rule hay không trước khi xử lý. Ví dụ Client gửi: { “name”: “”, “age”: -5, “email”: “abc” } API cần kiểm tra: […]

REST API – Cách thiết kế và xây dựng API theo REST

REST API – Cách thiết kế và xây dựng API theo REST khi chúng ta xậy dựng một website để mà frontend có thể giao tiếp được với backend đó chính là API. Ví dụ: Frontend ↓ GET /users // đây là API ↓ Backend ↓ Database Frontend có thể gửi request để lấy danh […]

Series 1 — Web Fundamentals: Internet – Http/Https

Series 1 — Web Fundamentals Internet → HTTP/HTTPS → DNS → Browser   Bài 1 – Internet Fundamentals   Khi bắt đầu học Frontend, chúng ta thường tập trung vào HTML, CSS và JavaScript. Tuy nhiên, trước khi tìm hiểu cách xây dựng một website, có một câu hỏi cơ bản mà bất kỳ Frontend […]

HTTP & HTTPS – Nền tảng giao tiếp trên Web

HTTP & HTTPS – Nền tảng giao tiếp trên Web Khi làm web hoặc backend, có một thứ gần như xuất hiện ở mọi nơi nhưng rất dễ bị xem là hiển nhiên: HTTP. Mỗi khi mở một website, gọi một API, đăng nhập, gửi form hay tải một file, client và server đều cần […]

Return First

Return First – Tư duy xử lý điều kiện trong code Khi bắt đầu làm việc với code thực tế, chúng ta sẽ thường gặp những function chứa rất nhiều điều kiện. Ban đầu, việc sử dụng if/else để xử lý từng trường hợp là hoàn toàn bình thường. Tuy nhiên, khi logic ngày càng […]

SOLID

SOLID – 5 nguyên tắc giúp thiết kế code tốt hơn SOLID là 5 nguyên tắc thiết kế trong lập trình hướng đối tượng (OOP), giúp code dễ đọc, dễ thay đổi, dễ mở rộng và dễ bảo trì. SOLID không phải framework hay tool mà là tư duy thiết kế code. Nó giúp hạn […]

Leave a Reply

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