API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Developing APIs
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Developing APIs

部署:將您的 API 上線

您的 API 在本地運作正常。您已經徹底測試了它。現在是時候將其部署到真實的伺服器上,使它可以從網際網路上的任何地方訪問,而不僅僅是您的電腦。
本章將引導您將 API 部署到 Railway,這是一個使部署變得極其簡單的平台。在大約 15 分鐘內,您將從本地開發轉變為一個即時的、公開可訪問的 API。

為什麼要部署?#

目前,您的 API 僅在 http://localhost:8000 上執行。這對於開發來說很好,但並不是很實用:
當您關閉筆記型電腦時它會停止
其他人無法訪問它
您無法向潛在雇主或客戶展示它
您無法在真實應用程式中使用它
一旦部署,您將獲得一個類似 https://user-api-production.up.railway.app 的 URL,它可以從任何地方全天候運作。您的 API 變得真實了。

在部署之前:準備您的程式碼#

需要進行一些更改才能使您的程式碼準備好投入生產。

從 SQLite 切換到 PostgreSQL#

SQLite 非常適合本地開發,但生產 API 應該使用適當的資料庫伺服器。 Railway 免費提供 PostgreSQL。
更新 database.py:
在 Cursor 中打開 database.py 並修改它以支援 SQLite(用於本地開發)和 PostgreSQL(用於生產):
此程式碼從環境變數讀取資料庫 URL。如果變數不存在(例如在本地開發時),它會退回到 SQLite。

將機密移至環境變數#

您的 auth.py 檔案有一個硬編碼的 SECRET_KEY。這需要改為來自環境變數。
更新 auth.py:

新增 CORS 配置#

您的 main.py 目前允許來自任何地方的 CORS (allow_origins=["*"])。這對於開發來說很好,但在生產環境中您應該更加嚴格。
更新 main.py:
現在您可以在生產環境中設定 ALLOWED_ORIGINS=https://yourapp.com,https://www.yourapp.com 以限制訪問。

本地測試#

在本地執行您的 API 確保這些更改沒有破壞任何東西:
訪問 http://localhost:8000/docs 並驗證一切仍然正常運作。

部署到 Railway#

Railway 是一個現代部署平台。它開始是免費的,自動處理資料庫,並且部署非常簡單。

建立 Railway 帳戶#

1.
前往 railway.app
2.
點擊 Start a New Project
3.
使用 GitHub(推薦)或電子郵件註冊

安裝 Railway CLI#

Railway CLI 使部署變得容易。安裝它:
在 Mac 上:
在 Windows 上:
在 Linux 上:
或使用來自 docs.railway.app/develop/cli 的獨立安裝程式

登入 Railway#

這會打開瀏覽器視窗進行身分驗證。完成後,您就從 CLI 登入了。

初始化您的專案#

在您的專案目錄中:
Railway 會問:"Create a new project or link to an existing one?"
選擇 Create new project
給它一個名稱,如 "user-api"
Railway 建立一個專案並將您的本地目錄連結到它。

新增 PostgreSQL 資料庫#

從列表中選擇 PostgreSQL。Railway 佈建一個 PostgreSQL 資料庫並自動建立一個包含連接字串的 DATABASE_URL 環境變數。

設定環境變數#

要生成安全的祕密金鑰,您可以使用:
複製輸出並將其用作您的 SECRET_KEY。
如果您想設定 CORS 來源:
目前,您可以將其保留為 * 或乾脆不設定。

建立 Procfile#

Railway 需要知道如何啟動您的應用程式。在您的專案根目錄中建立一個名為 Procfile(無副檔名)的檔案:
web: uvicorn main:app --host 0.0.0.0 --port $PORT
這告訴 Railway 執行您的 FastAPI 應用程式並將其綁定到 Railway 提供的埠。

建立 requirements.txt(如果您修改了它)#

確保您的 requirements.txt 包含所有依賴項:
fastapi
uvicorn[standard]
sqlalchemy
psycopg2-binary
python-jose[cryptography]
passlib[bcrypt]
pydantic[email]
python-multipart
注意:PostgreSQL 支援需要 psycopg2-binary。

部署#

現在部署您的程式碼:
Railway:
1.
上傳您的程式碼
2.
安裝 requirements.txt 中的依賴項
3.
自動建立資料庫表(因為 main.py 中的 Base.metadata.create_all())
4.
啟動您的 API
這大約需要 1-2 分鐘。

獲取您的部署 URL#

Railway 顯示您的部署 URL,類似於:
https://user-api-production.up.railway.app
訪問該 URL + /docs 以查看您的即時 API 文件:
https://user-api-production.up.railway.app/docs
您的 API 現在已上線!

測試您已部署的 API#

還記得上一章您用 AI 生成的所有那些測試案例嗎?現在您可以使用它們來測試您的生產 API。您不需要再次手動測試——只需切換環境。

在 Apidog 中建立生產環境#

1.
打開 Apidog
2.
前往 Environments
3.
+ New Environment
4.
名稱:"Production"
5.
Base URL: https://your-api-url.up.railway.app (您的實際 Railway URL)
6.
儲存

執行您的 AI 生成測試#

1.
切換到 Production 環境(右上角的下拉選單)
2.
前往任何端點的 Test Cases 分頁
3.
您將看到您在上一章接受的所有測試案例
4.
選擇所有測試案例
5.
點擊 Run Selected
Apidog 對生產 API 執行所有測試。您將看到:
✓ 通過的測試(API 行為正確)
✗ 失敗的測試(有東西需要修復)
如果所有測試通過,恭喜!您的生產 API 運作得與本地版本完全一樣。
如果有些測試失敗,請檢查:
環境變數是否設定正確?(railway variables 查看)
資料庫是否連接?(railway logs 檢查)
日誌中有任何錯誤嗎?(railway logs 查看)
這就是自動化測試的力量。 您用 AI 生成一次,現在您可以透過切換 Base URL 對任何環境(本地、模擬、生產)執行它們。

了解部署#

以下是剛剛發生的事情:
Railway 接收了您的程式碼,並看到它是一個 Python 專案(因為 requirements.txt)。它自動:
建立了一個容器來執行您的應用程式
安裝 Python 和所有依賴項
設定環境變數 (DATABASE_URL, SECRET_KEY 等)
將您的應用程式連接到 PostgreSQL 資料庫
分配了一個帶有 HTTPS 的公開 URL
使用 Procfile 指令啟動您的應用程式
每次您執行 railway up,它都會使用您的最新程式碼重新部署。資料庫在部署之間持續存在,因此您的資料不會丟失。

查看日誌#

查看伺服器上發生的事情:
這顯示來自您已部署應用程式的即時日誌。您將看到:
來自 Uvicorn 的啟動訊息
傳入的請求
任何錯誤或異常
資料庫查詢(如果您啟用了日誌記錄)
這對於除錯生產問題非常寶貴。

進行更新#

當您在本地更改程式碼時:
1.
在本地測試更改
2.
在 Apidog 中執行您的測試套件(Local 環境)
3.
執行 railway up 以重新部署
4.
再次執行您的測試套件(Production 環境)
Railway 自動處理零停機部署。您的舊版本會繼續執行,直到新版本準備就緒,然後流量會切換過去。

免費層限制#

Railway 的免費層包括:
每月 5 美元的免費額度
500 小時的使用時間(對於小型專案足夠)
1GB 資料庫儲存空間
自動 HTTPS
自訂網域
對於像這樣的簡單 API,您可能會保持在免費層內。如果您超過了,Railway 會暫停您的服務直到下個月,或者您可以新增付款方式。

替代方案:部署到 Render#

如果您更喜歡 Render(另一個好的平台),過程類似:
1.
將您的程式碼推送到 GitHub
2.
前往 render.com 並註冊
3.
建立一個 New Web Service
4.
連接您的 GitHub 儲存庫
5.
Render 檢測到它是 Python 並自動配置
6.
在儀表板中新增環境變數
7.
點擊 Create Web Service
Render 也提供免費層並類似地處理資料庫。主要區別在於 Render 自動從 GitHub 部署,而 Railway 可以直接從您的本地機器部署。

您學到了什麼#

您現在知道如何:
準備您的程式碼以投入生產(環境變數、資料庫 URL)
使用 CLI 部署到 Railway
新增 PostgreSQL 資料庫
安全地設定環境變數
獲取 API 的公開 URL
查看日誌並除錯生產問題
更新已部署的應用程式
使用您的 AI 生成測試套件測試生產環境
您的 API 不再只是一個本地專案。它是一個真實的、已部署的服務,可以從任何地方訪問。

恭喜!#

您已完成整個工作流程:
1.
在 Apidog 中設計您的 API
2.
使用 Cursor 的 AI 生成程式碼
3.
了解程式碼如何運作
4.
使用 Apidog 的 AI 生成測試案例測試它
5.
將其部署到生產環境
您現在擁有一個線上執行的真實 API,您可以:
加入到您的作品集
向潛在雇主展示
在實際專案中使用
繼續在其基礎上構建
這是一個現代的、專業的開發工作流程。您學會了使用 AI 工具來提高生產力,同時仍然了解底層發生了什麼。
繼續構建,繼續學習,最重要的是 - 使用這些技能來創造您引以為豪的東西。
在離開之前,請查看 章節總結 以快速回顧這段旅程。
Modified at 2025-12-29 12:07:25
Previous
使用 Apidog 測試您的 API
Next
章節總結
Built with