我們可以獨立開發FAST API,另一個選擇是利用nextjs-fastapi將Next.js及FastAPI整合在一個專案裡。
首先,我們來先新增一個資料夾,並利用Next.js FastAPI Starter在目前的資料夾產生一個新的專案。
npx create-next-app . --example "<https://github.com/digitros/nextjs-fastapi>"
看到這畫面,就知道安裝好了~
可以看得出來,就是一個next專案,只是多了一個api路徑,裡面有個index.py,跟一般的next專案一樣採用app router。
FAST API的部分是怎麼運作的呢? 其實,秘密就在package.json裡:
{
"name": "nextjs-fastapi",
"version": "0.2.0",
"private": true,
"scripts": {
**"fastapi-dev": "pip3 install -r requirements.txt && python3 -m uvicorn api.index:app --reload",**
"next-dev": "next dev",
**"dev": "concurrently \\"npm run next-dev\\" \\"npm run fastapi-dev\\"",**
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@types/node": "22.5.5",
"@types/react": "18.3.8",
"@types/react-dom": "18.3.0",
"autoprefixer": "10.4.20",
"concurrently": "^9.0.1",
"eslint": "8.41.0",
"eslint-config-next": "13.4.4",
"next": "^14.2.13",
"postcss": "^8.4.47",
"react": "18.3.1",
"react-dom": "18.3.1",
"tailwindcss": "3.4.12",
"typescript": "5.6.2"
}
}
所以,當我們執行npm run dev時,node.js會同時啟動next並透過python執行fastapi。好,我們來試試看:
<aside> 💡
VS Code也會建議安裝Python extension for Visual Studio Code
</aside>
可以看到除了原本的next.js,python的部分也同時啟動了。
可以看到網頁了~
網頁的內容就是在/app/page.tsx