Flask API 介面規劃
您的 Flask 應用程式 (flask-app
) 將作為一個 RESTful API 伺服器,提供一組標準的 HTTP 方法(GET, POST, PUT, DELETE)來對 MongoDB 中的資料進行操作。
API 端點 (Endpoints) 範例
假設您要管理一個名為 documents
的文件集合,您可以設計以下 API 端點:
程式碼和目錄結構
您的專案目錄 (eapp
) 應該包含以下核心檔案:
eapp/
├── app.py # 主要的 Flask 應用程式檔案
├── requirements.txt # 列出所有 Python 套件
└── ...
requirements.txt
這個檔案將列出所有 Python 專案所需的套件,特別是 Flask
和 pymongo
(或 Flask-PyMongo
)。
Flask
pymongo
app.py
程式邏輯
在 app.py
中,您需要處理以下邏輯:
連接到 MongoDB: 使用
pymongo
庫來建立與 MongoDB 的連接。連接字串會使用MONGO_HOST
環境變數。Pythonimport os from pymongo import MongoClient mongo_host = os.environ.get('MONGO_HOST', 'localhost') client = MongoClient(f'mongodb://{mongo_host}:27017/') db = client.your_database_name documents_collection = db.documents
定義 API 路由: 使用
@app.route
裝飾器來定義每個 API 端點,並編寫對應的處理函數。Pythonfrom flask import Flask, request, jsonify app = Flask(__name__) @app.route('/api/documents', methods=['POST']) def create_document(): data = request.get_json() result = documents_collection.insert_one(data) return jsonify({"_id": str(result.inserted_id)}), 201 # 這裡可以加入其他 GET, PUT, DELETE 路由
錯誤處理: 確保您的 API 在遇到錯誤時能返回有意義的 HTTP 狀態碼和錯誤訊息(例如,找不到文件時返回 404 Not Found)。
專案整合與部署
Dockerfile
:Dockerfile
將負責安裝requirements.txt
中指定的套件,並將app.py
複製到容器中。docker-compose up
: 一旦您的程式碼和 Dockerfile 都準備好,只需在專案根目錄下執行docker-compose up -d
命令,Docker Compose 就會自動:啟動 MongoDB 容器。
根據
Dockerfile
建置 Flask 應用程式映像檔。啟動 Flask 應用程式容器,並將其連接到 MongoDB 服務。
將主機的 5000 埠映射到 Flask 容器,使外部程式能夠透過
http://localhost:5000
呼叫您的 API。
這套設計模式提供了一個穩定、可擴展且易於維護的解決方案,
讓您能夠專注於 API 邏輯的開發,而無需擔心底層的基礎設施。
沒有留言:
張貼留言