成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

本篇文章將帶你了解:

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

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

# 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": "張三"}]

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

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

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

第一步:創(chuàng)建一個(gè)用戶模塊 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 文檔中對(duì)接口進(jìn)行分組展示

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

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

app = FastAPI()

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

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

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

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

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

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

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

# 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. 效果展示

啟動(dòng)項(xiàng)目訪問http://localhost:8000/docs你會(huì)看到接口被分組展示,清晰又美觀。

6. 總結(jié)

要點(diǎn)

描述

APIRouter

拆分接口模塊

prefix

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

tags

分組展示文檔

include_router

注冊(cè)路由模塊

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

更清晰、可維護(hù)性強(qiáng)

模塊化路由分發(fā),是構(gòu)建大型 FastAPI 項(xiàng)目的基礎(chǔ)。如果你還在 main.py 里堆代碼,是時(shí)候重構(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ù)處理語(yǔ)言模塊化實(shí)踐

2010-02-03 09:01:01

Java動(dòng)態(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實(shí)踐

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

模塊化路由器

2009-11-30 09:47:44

模塊化路由器

2013-07-09 13:13:27

路由器管理路由器

2009-11-30 09:40:44

2009-02-21 11:35:27

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

2023-07-03 08:48:40

Web模塊化設(shè)計(jì)

2020-09-17 10:30:21

前端模塊化組件
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 草比av| 日韩中文字幕在线视频 | 亚洲欧美一区二区三区情侣bbw | 色婷婷精品 | 日韩精品一区二区三区视频播放 | 欧美日韩国产在线观看 | 久热免费 | 亚洲一区二区三区四区五区午夜 | 日韩视频一区 | 成人国产精品色哟哟 | 黑人久久 | 国产精品a久久久久 | 精品一区二区在线观看 | 国产女人叫床高潮大片免费 | 成人精品久久日伦片大全免费 | 日本久久精品视频 | 久热电影 | 精品国产aⅴ | 亚洲精品电影在线观看 | 99re热精品视频 | 国内毛片毛片毛片毛片 | 国产激情在线 | 国产精品污www一区二区三区 | 久久精品小视频 | 欧美一区2区三区4区公司 | 欧美日韩在线观看视频网站 | 国产乱码久久久久久 | 中文字幕一级 | 日韩在线视频一区 | 超碰人人91 | 一区二区三区免费 | 羞羞的视频在线观看 | 色欧美综合| 美女拍拍拍网站 | 欧美另类视频 | 91精品久久久久久久久久 | 一级毛片在线播放 | 国产精品99久久久久久动医院 | 国产成人精品综合 | 99色综合 | 日韩区|