Skip to content

Latest commit

 

History

History
81 lines (74 loc) · 2.84 KB

idea.md

File metadata and controls

81 lines (74 loc) · 2.84 KB

iThome 2023

FastAPI RestfulAPI 前後端分離的支柱

  • Day01 FastAPI 推坑與框架的朋友們

    • FastAPI 優點
    • django / flask / FastAPI 大比拼
    • FastAPI 之於 其他 python 後端框架架,就像 typescript 之於 javascript(指的是語法層面)
    • 在各個 function 傳遞之間都會定義好 schema , 更容易 Debus ( Schema 設定好)
  • Day02 FastAPI 起步: 環境安裝

    • venv
    • poetry
    • uvicorn
  • Day03 FastAPI 設定與 Uvicorn 包裝

    • CROS
    • app.py 包裝
  • Day04 FastAPI 基礎架構

    • app instance
    • router
    • swagger docs
    • typing
  • Day05 Schema & Pydanic

    • Pydanic
    • FastAPI 中的 Schema
  • [Day06] Response model

  • [Day07] 再談 Python Typing 與 Schema 常見錯誤

    • HTTPException
    • 可能為 None -> Optional
    • 可以是多個 type -> Union
  • [Day08] 為 Swagger API endpoint 加上更多資訊

    • Response description
    • Summary
    • Example
    • Field
    • deprecated
    • Status code
  • [Day09] 依據項目切分 Router

  • [Day10] 連接 DB

  • [Day11] Model

  • [Day12] 使用 SQLalchemy

  • [Day13] Dpendency 萬用刀 & 常見錯誤

    • common query params
    • common header
    • 要是 callable
    • 只能在 router 的地方使用 Depends
    • 如果在其他 utils.py 或 model.py 使用會報錯
  • [Day14] 架構優化:將 CRUD 與 api endpoint 分離

  • [Day15] 架構優化:非同步存取 DB

  • [Day16] 架構優化:透過 Depends 注入非同步 DB Session 到 CRUD

  • [Day17] OAuth2 實例:OAuth2 Login / Refresh JWT 機制

  • [Day19] OAuth2 實例:內建 OAuth2_schema

  • [Day20] OAuth2 實例:密碼驗證

  • [Day21] OAuth2 實例: JWT 驗證

  • [Day19] OAuth2 實例:Authorize Dependency 、 權限管理

    • login 驗證
    • get curent user dependency
    • 將 OAuth2_schema 設為 Depends
  • [Day23] OAuth2 實例:User api & CRUD

  • [Day24] OAuth2 實例:Me api & CRUD

  • [Day25] 測試:pytest 入門與安裝

  • [Day26] 測試:pytest CRUD 與驗證

  • [Day27] 部署:使用 docker-compose 部署

  • [DayXX] 延伸功能:使用 redis 作為 server cache (設定)

  • [DayXX] 延伸功能:在 CRUD 查詢加上 cache

  • [DayXX] 延伸功能:使用 decorator 重構 redis 架構

  • [DayXX] 延伸功能:專案細節調整與部署

  • [Day30] 總結: