[Day 02] 第一個 FastAPI 程式
接下來,就要開始正式進入 FastAPI 的文章了~
FastAPI 簡介
FastAPI 是誰?
FastAPI 是一個 Python 網路框架,首次發布於 2018 年,主打的就是簡單、好用、快速,它不僅程式本身快,開發上也很快,因此在需要快速建立 API 的時候是一個很好的選擇。
甚至在官網中也有一再強調它是「最快的 Python 框架之一」(one of the fastest Python frameworks available)
FastAPI 為什麼快?
FastAPI 之所以能這麼快,最主要的原因有以下這幾點:
- 使用 ASGI (Asynchronous Server Gateway Interface)
- 相較於 WSGI (Web Server Gateway Interface),ASGI 可以很容易做到異步(asynchronous)處理,因此當有多個 API 同時使用時,可以更快速地完成
- 其他框架 (例如:Flask),就需要整合其他功能、套件才有辦法做到
FastAPI 需要搭配 ASGI server 才能使用,例如:Uvicorn
- 使用較高效能的套件,例如 Pydandic
FastAPI 還有什麼優點?
除此之外,FastAPI 還有許多優點,包含:
- 型別檢查
- 讓你可以宣告型別並執行檢查
- 自動生成 API 文件
- 省去大量無聊的時間寫文件
- 支援依賴注入(Dependeny Injection)
- 方便管理各個 API
這些功能也會在後續的文章中逐一介紹到~
此外,因為 Python 好學好上手,很適合做為入門的程式語言,讓很多人願意投入 Python 的社群,開發各種不同功能的套件。這幾年,Python 在各個領域都有很好的發展,像是資料科學、人工智慧等,有許多完整的套件可以使用。因此,使用 Python 做為後端程式語言,在未來功能上開發會有很大擴充性。
那其他框架呢?
說到 Python 網路框架,大家自然而然就會把 FastAPI 跟老牌的 Flask 和 Djangle 做比較
這邊因為我只用過 FastAPI,就不進行評比了,網路上也有很多相關的討論,只不過也有文章認為這樣比不太公平就是了。
第一個程式
接下來,讓我們就來快速建立第一個 FastAPI 程式
安裝
要安裝的套件有兩個,一個是本系列文章的主角 FastAPI,另一個則是運行 FastAPI 的 ASGI server
1 | pip install fastapi |
安裝完之後,可以輸入 pip freeze
看一下裝了哪些東西
主程式
接下來建立 main.py
1 | from fastapi import FastAPI |
啟動
接著在 terminal 輸入指令啟動
1 | uvicorn main:app |
這行指令的意思簡單來說就是用 uvicorn 去啟動
main.py
內的app
物件
啟動後,就會看到 terminal 出現以下資訊
要停止的話,按下 Ctrl + C 即可
享受美好成果
接下來開啟瀏覽器,進到上面所寫的網址(預設是 http://127.0.0.1:8000/ ),如果有看到 {"message": "Hello World"}
,就表示有順利建立 fastAPI 後端伺服器了,是不是真的很容易呢?
接下來,明天會說明 main.py
的內容,並開始介紹怎麼設定 API ~