偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

FastAPI 路由分發(fā)詳解:模塊化項目結(jié)構(gòu)優(yōu)秀實踐

開發(fā)
模塊化路由分發(fā),是構(gòu)建大型 FastAPI 項目的基礎(chǔ)。如果你還在 main.py 里堆代碼,是時候重構(gòu)你的接口結(jié)構(gòu)了。?

在開發(fā) FastAPI 項目時,隨著業(yè)務(wù)增長,main.py 中的接口代碼可能會越來越多,變得難以維護。為了保持清晰的結(jié)構(gòu),我們需要對路由進行模塊化拆分和分發(fā)。

本篇文章將帶你了解:

  • 路由的基本注冊方式
  • 如何將不同模塊的接口拆分到子文件中
  • 如何組織大型項目結(jié)構(gòu)
  • 路由標(biāo)簽與接口文檔分組展示

1. FastAPI 中的基礎(chǔ)路由注冊

# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def index():
    return {"msg": "Hello World"}

@app.get("/users")
def list_users():
    return [{"id": 1, "name": "張三"}]

這種方式在項目初期很簡單,但后期業(yè)務(wù)增加就會導(dǎo)致 main.py 冗長。

2. 使用 APIRouter 模塊化管理接口

FastAPI 提供了 fastapi.APIRouter,可以將路由分散到多個模塊,然后在 main.py 中統(tǒng)一導(dǎo)入。

第一步:創(chuàng)建一個用戶模塊 user.py

# app/routers/user.py
from fastapi import APIRouter

router = APIRouter(prefix="/users", tags=["用戶模塊"])

@router.get("/")
def list_users():
    return [{"id": 1, "name": "張三"}]

@router.get("/{user_id}")
def get_user(user_id: int):
    return {"id": user_id, "name": "張三"}
  • prefix:表示該模塊下的所有路由統(tǒng)一前綴,如 /users
  • tags:在 Swagger 文檔中對接口進行分組展示

第二步:在 main.py 中引入路由模塊

# main.py
from fastapi import FastAPI
from app.routers import user  # 導(dǎo)入自定義路由模塊

app = FastAPI()

app.include_router(user.router)  # 注冊用戶模塊路由

3. 多模塊項目結(jié)構(gòu)推薦

你可以按功能劃分模塊,例如:

project/
├── app/
│   ├── main.py
│   ├── routers/
│   │   ├── __init__.py
│   │   ├── user.py
│   │   ├── article.py
│   │   └── auth.py
│   ├── models/
│   ├── schemas/
│   └── services/
  • routers/:接口路由
  • models/:數(shù)據(jù)庫模型
  • schemas/:請求/響應(yīng)模型
  • services/:業(yè)務(wù)邏輯層

每個功能模塊都使用 APIRouter 創(chuàng)建并在 main.py 中注冊。

4. 自動導(dǎo)入多個模塊(可選)

為了避免在 main.py 手動 include_router 太多次,也可以在 routers/__init__.py 中統(tǒng)一注冊:

# routers/__init__.py
from .user import router as user_router
from .article import router as article_router
from .auth import router as auth_router

routers = [user_router, article_router, auth_router]

然后 main.py 中寫:

from fastapi import FastAPI
from app.routers import routers

app = FastAPI()

for router in routers:
    app.include_router(router)

5. 效果展示

啟動項目訪問http://localhost:8000/docs你會看到接口被分組展示,清晰又美觀。

6. 總結(jié)

要點

描述

APIRouter

拆分接口模塊

prefix

路由前綴,統(tǒng)一歸類

tags

分組展示文檔

include_router

注冊路由模塊

模塊化目錄結(jié)構(gòu)

更清晰、可維護性強

模塊化路由分發(fā),是構(gòu)建大型 FastAPI 項目的基礎(chǔ)。如果你還在 main.py 里堆代碼,是時候重構(gòu)你的接口結(jié)構(gòu)了。


責(zé)任編輯:趙寧寧 來源: Ssoul肥魚
相關(guān)推薦

2010-08-18 09:03:07

模塊化路由器

2010-08-16 13:49:39

模塊化路由器

2017-05-18 10:23:55

模塊化開發(fā)RequireJsJavascript

2017-05-18 11:43:41

Android模塊化軟件

2016-12-14 14:50:26

CSS預(yù)處理語言模塊化實踐

2010-02-03 09:01:01

Java動態(tài)模塊化

2019-08-28 16:18:39

JavaScriptJS前端

2017-08-08 16:07:57

Android 模塊化架構(gòu)

2017-08-11 16:10:36

微信Android實踐

2009-11-30 09:00:48

模塊化路由器

2023-12-25 22:24:36

C++模塊Module

2024-02-21 09:32:18

開發(fā)架構(gòu)

2016-11-08 20:31:19

同方服務(wù)器模塊化

2009-12-03 20:15:13

模塊化路由器

2013-07-09 13:13:27

路由器管理路由器

2009-11-30 09:47:44

模塊化路由器

2009-11-30 09:40:44

2009-02-21 11:35:27

路由器中小網(wǎng)絡(luò)模塊化

2019-11-22 15:27:07

技術(shù)漏洞管理網(wǎng)絡(luò)

2019-11-24 23:39:01

漏洞管理漏洞風(fēng)險
點贊
收藏

51CTO技術(shù)棧公眾號