inflearn logo

Chinh phục toàn diện phát triển backend FastAPI - Pydantic v2, OAuth 2.0, SQLAlchemy

Khóa học này gồm 41 bài, kéo dài khoảng 22 giờ, hướng dẫn thiết kế và triển khai API backend bằng FastAPI. FastAPI là một framework dễ bắt đầu. Chỉ cần lướt qua tài liệu và viết vài dòng là API đã có thể chạy. Vấn đề nằm ở những bước tiếp theo. Nếu không biết request đi qua những đâu để đến được tham số của hàm, dependency được dọn dẹp khi nào, hay exception được bắt ở điểm nào, bạn sẽ nhanh chóng bế tắc khi ứng dụng trở nên phức tạp hơn. Khóa học này dành thời gian để lần theo cơ chế hoạt động bên trong đó. Khóa học bắt đầu với môi trường phát triển. Bạn sẽ tìm hiểu cả hai phương pháp conda và venv, đồng thời gửi request bằng VS Code REST Client và Swagger UI để làm quen với cấu trúc của HTTP request và response. Tiếp theo, khóa học phân biệt path parameter và query parameter, đồng thời giải thích lý do xảy ra lỗi 422 trong mối liên hệ với việc kiểm tra kiểu dữ liệu. Pydantic là phần được đào sâu nhất trong khóa học này. Sau khi tìm hiểu từ các kiểu vô hướng đến date, UUID, Decimal, Enum và Literal, khóa học chuyển sang BaseModel. Bạn sẽ thiết lập điều kiện bằng Field(), kiểm tra một hoặc nhiều field bằng @field_validator, đồng thời tìm hiểu sự khác biệt trong hoạt động giữa before và after của @model_validator. Vì khóa học dựa trên Pydantic v2, bạn có thể áp dụng trực tiếp cú pháp mới nhất vào công việc thực tế. Phần giữa khóa học tập trung vào việc cấu trúc hóa và dependency injection. Bạn sẽ lần lượt tìm hiểu cách chia tách file bằng APIRouter, cách sử dụng hàm và lớp làm dependency, Sub-dependency và dependency ở cấp decorator. Riêng yield được dành bốn bài để tìm hiểu. Khóa học đi sâu vào nguyên lý hoạt động của generator, quá trình truyền exception ngược lên call stack bằng raise, cũng như cách đưa exception vào vị trí yield bằng throw(). Khi hiểu được việc dọn dẹp tài nguyên diễn ra như thế nào trong dependency có chứa yield, bạn sẽ nắm rõ hơn cách quản lý DB session. Phần sau tập trung vào authentication và database. Khóa học tổng hợp các khái niệm về OAuth 2.0 và bốn Grant Type, sau đó triển khai việc phát hành và xác thực JWT, logic thực thi bên trong OAuth2PasswordBearer, cũng như kiểm soát quyền bằng Security() và scopes. Tiếp theo, bạn sẽ trực tiếp thiết lập client cho Google, Kakao và Naver, rồi tích hợp đăng nhập mạng xã hội theo phương thức Authorization Code Grant. Cuối cùng, khóa học tìm hiểu SQLAlchemy ORM, từ cấu trúc URL của create_engine, vai trò của Dialect và DBAPI, đến transaction, session, model và việc tạo table. Đây là khóa học phù hợp với những ai muốn biết không chỉ "đoạn code hoạt động" mà còn muốn hiểu "tại sao nó lại hoạt động như vậy".

1 học viên đang tham gia khóa học này

Độ khó Cơ bản

Thời gian Không giới hạn

FastAPI
FastAPI
Python
Python
REST API
REST API
pydantic
pydantic
SQLAlchemy
SQLAlchemy
FastAPI
FastAPI
Python
Python
REST API
REST API
pydantic
pydantic
SQLAlchemy
SQLAlchemy

Bạn sẽ nhận được điều này sau khi học.

  • Thiết lập môi trường phát triển - có thể tạo môi trường ảo bằng conda và venv, cài đặt FastAPI và uvicorn rồi chạy chúng.

  • Các kiểu dữ liệu và kiểm tra xác thực trong Pydantic v2 - có thể sử dụng nhiều kiểu dữ liệu khác nhau như kiểu vô hướng, ngày tháng, UUID, Enum, đồng thời xác thực và chuyển đổi dữ liệu bằng BaseModel.

  • Xác thực phản hồi và tổ chức định tuyến - có thể xác thực phản hồi bằng response_model và quản lý các path operation theo từng tệp bằng APIRouter.

  • Phụ thuộc yield và xử lý ngoại lệ - Hiểu nguyên lý hoạt động của generator và có thể triển khai việc dọn dẹp tài nguyên cũng như xử lý ngoại lệ trong các phụ thuộc có chứa yield.

  • OAuth 2.0 và kiểm soát quyền hạn - Có thể phân biệt các Grant Type của OAuth 2.0 và triển khai kiểm soát quyền hạn chi tiết bằng Security() và scopes.

  • Sử dụng SQLAlchemy ORM - có thể thiết lập create_engine và session, định nghĩa model để tạo bảng, đồng thời kiểm soát giao dịch.

  • Xử lý Path Operation và tham số - Hiểu sự khác biệt giữa tham số đường dẫn và tham số truy vấn, đồng thời có thể triển khai các tham số bắt buộc, tùy chọn và lặp lại.

  • Sử dụng Field và Validator - có thể chỉ định các điều kiện bằng Field() và triển khai logic xác thực chi tiết bằng @field_validator, @model_validator.

  • Thiết kế dependency injection - có thể sử dụng hàm và lớp làm dependency, đồng thời tái sử dụng logic dùng chung thông qua sub-dependency và dependency ở cấp decorator.

  • Triển khai xác thực JWT - Hiểu cấu trúc JWT và có thể triển khai việc cấp phát, xác minh token cũng như xác thực người dùng bằng Depends().

  • Tích hợp đăng nhập mạng xã hội - Có thể thiết lập client Google·Kakao·Naver và triển khai đăng nhập mạng xã hội theo phương thức Authorization Code Grant.

Bạn muốn bắt đầu phát triển backend bằng Python? Hay bạn đang sử dụng FastAPI nhưng cảm thấy việc xác thực dữ liệu, tiêm phụ thuộc, xử lý xác thực và tích hợp cơ sở dữ liệu khá khó khăn?

Trong khóa học này, bạn sẽ học từng bước từ những kiến thức cơ bản về phát triển REST API bằng FastAPI đến các kỹ thuật cốt lõi cần thiết trong thực tế.

Từ việc thiết lập môi trường phát triển, xử lý tham số đường dẫn và tham số truy vấn, xác thực dữ liệu bằng Pydantic v2, tổ chức cấu trúc dự án với APIRouter, đến tiêm phụ thuộc và xử lý ngoại lệ, bạn sẽ từng bước nắm vững các nội dung này. Ngoài ra, bạn cũng sẽ thực hành xác thực và kiểm soát quyền bằng JWT và OAuth 2.0, đăng nhập mạng xã hội qua Google, Kakao và Naver, cũng như kết nối cơ sở dữ liệu thông qua ORM SQLAlchemy.

Mục tiêu của khóa học này không chỉ dừng lại ở việc viết mã theo hướng dẫn, mà còn giúp bạn hiểu quá trình xử lý dữ liệu yêu cầu, nguyên lý thực thi và dọn dẹp các dependency, cũng như cách ngoại lệ được truyền đi.

Thông qua khóa học này, bạn có thể phát triển những năng lực sau.

  • Thiết kế và triển khai REST API bằng FastAPI

  • Xác thực và chuyển đổi dữ liệu bằng Pydantic

  • Thiết kế cấu trúc dự án API dễ bảo trì

  • Triển khai dependency injection và xử lý ngoại lệ

  • Xác thực JWT và quản lý quyền dựa trên OAuth 2.0

  • Tích hợp đăng nhập mạng xã hội

  • Mô hình hóa cơ sở dữ liệu và quản lý giao dịch bằng SQLAlchemy

Các công nghệ này có thể được sử dụng để phát triển dịch vụ web, xây dựng hệ thống backend, cung cấp API cho mô hình AI, phát triển dịch vụ dữ liệu và nhiều ứng dụng dựa trên Python khác.

Nếu bạn nắm được cú pháp cơ bản của Python, bạn có thể bắt đầu học ngay cả khi chưa có kinh nghiệm phát triển backend. Hãy học một cách có hệ thống từ nền tảng đến các khái niệm cốt lõi thông qua khoảng 22 giờ học và tài liệu thực hành.

Mục tiêu của khóa học này là giúp bạn hiểu nguyên lý hoạt động của FastAPI và trang bị năng lực phát triển backend có thể áp dụng vào các dự án thực tế.

Bạn sẽ học được gì

Từ khóa chính (Core Keywords)

Trong khóa học này, bạn sẽ từng bước học các khái niệm cốt lõi và kỹ năng thực tiễn trong phát triển backend bằng FastAPI.

1. Phát triển FastAPI và REST API

  • Cài đặt FastAPI và Uvicorn, đồng thời cấu hình môi trường phát triển

  • Path Operation và xử lý yêu cầu HTTP

  • Sử dụng tham số đường dẫn và tham số truy vấn

  • Thiết kế REST API và xử lý phản hồi

2. Pydantic v2 và xác thực dữ liệu

  • Định nghĩa mô hình dữ liệu bằng BaseModel

  • Gợi ý kiểu Python và chuyển đổi kiểu dữ liệu

  • Thiết lập điều kiện cho giá trị đầu vào bằng Field()

  • Xác thực dữ liệu bằng field_validator và model_validator

  • Xác thực dữ liệu phản hồi bằng response_model

3. Cấu trúc hóa API và dependency injection

  • Cấu trúc hóa định tuyến bằng APIRouter

  • Tiêm phụ thuộc dựa trên hàm và lớp

  • Tái sử dụng sub-dependency và logic chung

  • Quản lý tài nguyên bằng yield

  • Nguyên lý truyền và xử lý ngoại lệ

4. Xác thực JWT và OAuth 2.0

  • Cấu trúc, việc cấp và xác thực token JWT

  • Tận dụng Bearer token và OAuth2PasswordBearer

  • Xác thực người dùng và quản lý quyền hạn

  • Kiểm soát quyền truy cập bằng Security() và scopes

  • Hiểu về các loại Grant của OAuth 2.0

5. Triển khai đăng nhập mạng xã hội

  • Cấu hình client dành cho nhà phát triển Google, Kakao và Naver

  • Hiểu về phương thức Authorization Code Grant

  • Tích hợp đăng nhập bằng dịch vụ xác thực bên ngoài

6. SQLAlchemy ORM và cơ sở dữ liệu

  • Kết nối cơ sở dữ liệu bằng create_engine

  • Hiểu vai trò của Dialect và DBAPI

  • Định nghĩa mô hình ORM và tạo bảng

  • Quản lý phiên cơ sở dữ liệu

  • Thực thi SQL và kiểm soát giao dịch

Dựa trên những từ khóa cốt lõi này, bạn sẽ học các kỹ thuật có thể áp dụng trong nhiều lĩnh vực như phát triển backend web, xây dựng REST API, xác thực và quản lý quyền người dùng, tích hợp cơ sở dữ liệu, cũng như triển khai mô hình AI và machine learning thành các dịch vụ API.

Khóa học dành cho những học viên nắm được cú pháp Python cơ bản, đồng thời trình bày một cách có hệ thống từ việc xây dựng API cơ bản đến các chức năng cốt lõi của backend cần thiết trong thực tế.

Trước khi đăng ký

Kiến thức tiên quyết và hướng dẫn khóa học (Prerequisites & Notices)

1. Kiến thức nền tảng và yêu cầu chuẩn bị

Khóa học này dành cho những học viên đã nắm được cú pháp cơ bản của Python. Bạn không cần có kinh nghiệm phát triển backend, nhưng việc hiểu các khái niệm cơ bản của Python như hàm, lớp và decorator sẽ giúp ích cho quá trình học.

  • Hiểu biết về cú pháp cơ bản của Python

  • Kiến thức cơ bản về type hint (khuyến nghị)

  • VS Code hoặc trình chỉnh sửa mã bạn muốn dùng

  • Khuyến nghị sử dụng môi trường Windows và PowerShell

  • Kiến thức cơ bản về HTTP và REST API (các khái niệm liên quan sẽ được giải thích trong bài giảng)

  • Kiến thức cơ bản về các câu lệnh SELECT và INSERT trong SQL

  • Tài khoản nhà phát triển của Google, Kakao và Naver (cần thiết cho phần thực hành đăng nhập bằng mạng xã hội)

2. Video bài giảng và tài liệu học tập

Khóa học này gồm các video bài giảng với tổng thời lượng khoảng 22 giờ, đồng thời cung cấp tài liệu PDF và mã thực hành Python (.py, .ipynb, .http) theo từng bài học.

Để học tập hiệu quả, chúng tôi khuyến nghị phương pháp sau.

  • Hãy vừa xem bài giảng, vừa tự viết và chạy mã.

  • Sau khi kết thúc mỗi phần, hãy áp dụng những nội dung đã học vào một dự án API nhỏ.

  • Hãy sử dụng Swagger UI hoặc REST Client để kiểm thử các yêu cầu và phản hồi.

  • Nếu xảy ra lỗi, hãy hình thành thói quen kiểm tra thông báo lỗi và phân tích nguyên nhân.

  • Hãy luyện tập lặp đi lặp lại các khái niệm cốt lõi như xác thực JWT, tiêm phụ thuộc và tích hợp cơ sở dữ liệu.

Thông số kỹ thuật cụ thể của video và âm thanh không được nêu riêng. Để học tập thuận lợi, hãy chuẩn bị kết nối Internet ổn định và môi trường phát triển có thể chạy mã.

3. Hỏi đáp và hỗ trợ học tập

Nếu trong quá trình học, bạn gặp khái niệm khó hiểu hoặc lỗi khi thực hành, bạn có thể sử dụng chức năng hỏi đáp và thảo luận do nền tảng khóa học cung cấp để đặt câu hỏi. Khi đặt câu hỏi, hãy trình bày cả thông báo lỗi, đoạn mã liên quan, kết quả dự kiến và kết quả thực tế để giúp xác định vấn đề rõ ràng hơn.

4. Hướng dẫn cập nhật khóa học

Các công nghệ liên quan như FastAPI, Pydantic, SQLAlchemy có thể không ngừng phát triển. Vì có thể phát sinh khác biệt về cú pháp hoặc cách hoạt động giữa phiên bản được nêu trong bài giảng và phiên bản mới nhất, chúng tôi khuyến nghị bạn tham khảo thêm tài liệu chính thức.

Lịch cập nhật khóa học trong tương lai hiện chưa được xác định riêng. Khi học các tính năng mới nhất hoặc những thay đổi, hãy kiểm tra phiên bản và khả năng tương thích của thư viện bạn đang sử dụng.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên biết sử dụng Python nhưng lần đầu phát triển backend

  • Những người đang sử dụng Flask hoặc Django và muốn chuyển sang FastAPI

  • Người dùng FastAPI cảm thấy bức bối vì dù viết mã dựa trên tài liệu nhưng vẫn không rõ cơ chế hoạt động bên trong

  • Nhà phát triển dịch vụ trong nước phải tự tích hợp đăng nhập mạng xã hội Kakao và Naver

  • Dành cho những ai muốn hệ thống hóa JWT và OAuth 2.0 từ khái niệm đến triển khai.

  • Kỹ sư dữ liệu·ML cần nền tảng backend để phục vụ mô hình AI qua API

  • Ứng viên đang chuẩn bị xin việc cần một dự án REST API để đưa vào portfolio.

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản của Python (hiểu về hàm, lớp và decorator)

  • Nếu bạn đã từng làm quen với type hint thì sẽ dễ dàng hơn.

  • Tiến hành dựa trên môi trường Windows (xử lý các thiết lập PowerShell)

  • VS Code hoặc trình soạn thảo mã bạn đang sử dụng

  • Các khái niệm cơ bản về HTTP và REST (sẽ được giải thích lại trong bài giảng)

  • Tài khoản nhà phát triển Google·Kakao·Naver (cần thiết để thực hành đăng nhập mạng xã hội và đều miễn phí)

  • Kiến thức cơ bản về cơ sở dữ liệu (chỉ cần biết SELECT, INSERT là đủ)

  • Cung cấp tài liệu bài giảng PDF và mã thực hành (.py, .ipynb, .http) theo từng buổi học

Xin chào
Đây là it learner

Chương trình đào tạo IT do các chuyên gia thực tiễn và đội ngũ giảng viên chuyên nghiệp trong từng lĩnh vực IT giảng dạy, cung cấp các khóa học thực tiễn trong nhiều lĩnh vực như lập trình, phát triển phần mềm, phân tích dữ liệu, trí tuệ nhân tạo, mạng và công nghệ thông tin. Thông qua nội dung đào tạo phản ánh các công nghệ IT mới nhất và xu hướng của ngành, chương trình hỗ trợ học viên đồng thời tiếp thu kiến thức lý thuyết và năng lực thực tiễn, cũng như thích ứng với môi trường IT thay đổi nhanh chóng.

Thêm

Chương trình giảng dạy

Tất cả

41 bài giảng ∙ (21giờ 52phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của it learner

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

55.170 ₫

14%

1.320.231 ₫