Skip to content

Latest commit

 

History

History
168 lines (98 loc) · 3.48 KB

File metadata and controls

168 lines (98 loc) · 3.48 KB

01: Python Backend Development (FastAPI)

  1. Mục tiêu (Idea Level)

Mục tiêu của bước này là xây dựng backend API ban đầu bằng Python (FastAPI) cho một ứng dụng mạng xã hội đơn giản (micro social media), phục vụ cho các chức năng cốt lõi:

Tạo, xem, cập nhật, xoá bài viết (Posts)

Bình luận (Comments)

Thích / bỏ thích bài viết (Like / Unlike)

Cung cấp API tài liệu hoá (OpenAPI / Swagger)

Sử dụng SQLite làm cơ sở dữ liệu nhẹ, dễ triển khai

⚠️ Lưu ý quan trọng:

Đây là hệ thống gốc (source system), KHÔNG phải migrate.

Toàn bộ logic, API contract, và dữ liệu chuẩn được định nghĩa ở bước này.

Các bước migrate sau (Java, .NET) phải bám sát đúng hành vi ở đây.

  1. Phương pháp luận tổng thể

Hệ thống được thiết kế theo hướng API-first và contract-driven development:

Xác định yêu cầu nghiệp vụ (Product Requirements)

Thiết kế API contract bằng OpenAPI

Xây dựng FastAPI app bám sát OpenAPI

Kiểm chứng API bằng Swagger UI

Cách tiếp cận này đảm bảo:

Dễ migrate sang công nghệ khác

Dễ kiểm thử

Tránh phụ thuộc UI

  1. Kiến trúc hệ thống (Logical Level) 3.1 Sơ đồ kiến trúc logic Client (Browser / API Tool) | v FastAPI Application | v SQLite Database 3.2 Phân lớp logic python/ │ ├── main.py # Entry point, routing, app lifecycle ├── models.py # Data models & schema ├── database.py # Database connection & initialization ├── requirements.txt └── sns_api.db # SQLite database file
  2. Thiết kế vật lý (Physical Level) 4.1 Công nghệ sử dụng Thành phần Công nghệ Ngôn ngữ Python 3.x Framework FastAPI Web Server Uvicorn Database SQLite API Spec OpenAPI 3.x
  3. Phân tích chi tiết từng thành phần 5.1 main.py – Entry Point

Vai trò:

Khởi tạo FastAPI app

Định nghĩa toàn bộ endpoint

Kết nối database

Expose Swagger UI (/docs)

Đặc điểm:

FastAPI tự động sinh OpenAPI từ code

Các endpoint được nhóm theo nghiệp vụ (posts, comments, likes)

5.2 models.py – Data Models

Vai trò:

Định nghĩa schema dữ liệu

Ánh xạ request / response

Ví dụ logic:

Post: id, title, content, author

Comment: id, post_id, content, author

Like: post_id, username

👉 Các model này chính là nguồn gốc để sinh openapi.yaml.

5.3 database.py – Database Layer

Vai trò:

Tạo kết nối SQLite

Khởi tạo bảng nếu chưa tồn tại

Đặc điểm quan trọng:

Database luôn được khởi tạo khi app start

Không dùng migration phức tạp (phù hợp demo & workshop)

  1. API Contract & Swagger 6.1 Swagger UI

FastAPI cung cấp sẵn:

GET /docs

Cho phép:

Xem toàn bộ endpoint

Test API trực tiếp trên trình duyệt

👉 Bước migrate KHÔNG được thay đổi hành vi ở đây.

  1. Kiểm thử ban đầu

Các kiểm tra tối thiểu:

App khởi động thành công

Truy cập /docs hiển thị Swagger UI

Gọi thử:

GET /health

POST /posts

GET /posts

Nếu các bước trên OK → Python backend hợp lệ.

  1. Kết luận

Bước 01 – Python Backend Development đóng vai trò:

Là hệ thống chuẩn ban đầu (baseline)

Là nguồn sự thật (single source of truth) cho toàn bộ migrate

Định nghĩa rõ ràng:

API behavior

Data model

Response format