精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

FastAPI 實戰(zhàn)技巧:統(tǒng)一響應格式 + 全局異常處理,一次搞定!

開發(fā)
這篇文章帶你一步步落地:統(tǒng)一響應結(jié)構(gòu) + 全局異常處理機制,讓接口更規(guī)范、更易維護!

在開發(fā) FastAPI 項目的過程中,你是否遇到過這些問題?

  • 每個接口的返回結(jié)構(gòu)不統(tǒng)一,前端不好處理?
  • 拋出異常時直接報 500,連自己都看不懂?
  • 想統(tǒng)一日志、錯誤、結(jié)構(gòu)處理,結(jié)果寫得四分五裂?

這篇文章帶你一步步落地:統(tǒng)一響應結(jié)構(gòu) + 全局異常處理機制,讓接口更規(guī)范、更易維護!

1. 為什么要統(tǒng)一響應格式?

統(tǒng)一返回格式的好處:

  • 前端開發(fā)更容易解析數(shù)據(jù)結(jié)構(gòu)
  • 后期維護更省心,不用滿項目找問題
  • 可擴展性強,適配多種客戶端需求

推薦標準格式如下:

{
  "code":0,
"message":"OK",
"data":{
    "id":1,
    "name":"Alice"
}
}

字段解釋:

字段名

類型

說明

code

int

自定義業(yè)務狀態(tài)碼

message

str

提示信息

data

object

實際返回的業(yè)務數(shù)據(jù),支持對象/數(shù)組/null

2. 響應模型封裝

定義通用響應模型(支持泛型):

from pydantic.generics import GenericModel
from typing import Generic, TypeVar, Optional

T = TypeVar("T")

class Response(GenericModel, Generic[T]):
    code: int = 0
    message: str = "OK"
    data: Optional[T] = None

這種結(jié)構(gòu)支持響應任何類型的數(shù)據(jù),只需:

@app.get("/user/{user_id}", response_model=Response[UserOut])
async def get_user(user_id: int):
    user = await User.get(id=user_id)
    return Response(data=user)

接口文檔中將展示完整的結(jié)構(gòu),同時前端調(diào)用也能穩(wěn)定解析。

3. 全局異常處理

FastAPI 默認錯誤返回 HTTP 500 和系統(tǒng) Traceback,不適合直接暴露給客戶端。

我們可以自定義異常類 + 注冊全局處理器。

(1) 自定義業(yè)務異常

class BusinessException(Exception):
    def __init__(self, code: int = 4001, message: str = "業(yè)務異常"):
        self.code = code
        self.message = message

(2) 注冊異常處理器

from fastapi.responses import JSONResponse
from fastapi import Request, FastAPI

defregister_exceptions(app: FastAPI):

    @app.exception_handler(BusinessException)
    asyncdefbusiness_exception_handler(request: Request, exc: BusinessException):
        return JSONResponse(
            status_code=200,
            content={
                "code": exc.code,
                "message": exc.message,
                "data": None
            }
        )

    @app.exception_handler(Exception)
    asyncdefgeneral_exception_handler(request: Request, exc: Exception):
        return JSONResponse(
            status_code=500,
            content={
                "code": 5000,
                "message": "系統(tǒng)異常",
                "data": None
            }
        )

調(diào)用:

register_exceptions(app)

4. 異常使用示例

@app.get("/users/{user_id}", response_model=Response[UserOut])
async def get_user(user_id: int):
    user = await User.get_or_none(id=user_id)
    if not user:
        raise BusinessException(code=4040, message="用戶不存在")
    return Response(data=user)

5. 項目推薦結(jié)構(gòu)

app/
├── main.py                # 啟動入口
├── api/
│   └── user.py            # 路由模塊
├── core/
│   ├── response.py        # 響應模型
│   ├── exception.py       # 異常類與注冊器

(1) response.py

from pydantic.generics import GenericModel
from typing import Generic, TypeVar, Optional

T = TypeVar("T")

class Response(GenericModel, Generic[T]):
    code: int = 0
    message: str = "OK"
    data: Optional[T] = None

(2) exception.py

from fastapi import Request, FastAPI
from fastapi.responses import JSONResponse

classBusinessException(Exception):
    def__init__(self, code: int = 4001, message: str = "業(yè)務異常"):
        self.code = code
        self.message = message

defregister_exceptions(app: FastAPI):
    @app.exception_handler(BusinessException)
    asyncdefbusiness_handler(request: Request, exc: BusinessException):
        return JSONResponse(
            status_code=200,
            content={"code": exc.code, "message": exc.message, "data": None}
        )

    @app.exception_handler(Exception)
    asyncdefglobal_handler(request: Request, exc: Exception):
        return JSONResponse(
            status_code=500,
            content={"code": 5000, "message": "系統(tǒng)錯誤", "data": None}
        )

(3) main.py

from fastapi import FastAPI
from app.core.exception import register_exceptions
from app.api import user

app = FastAPI()

register_exceptions(app)
app.include_router(user.router)

6. 總結(jié)

  • 統(tǒng)一響應結(jié)構(gòu) 提高接口一致性,利于前后端協(xié)作
  • 異常統(tǒng)一處理 避免信息泄露、增強健壯性
  • 泛型封裝響應模型,優(yōu)雅又實用!
責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2024-10-28 08:32:22

統(tǒng)一接口響應SpringBoot響應框架

2017-05-18 14:14:25

過濾器Spring ClouZuul

2017-05-19 15:13:05

過濾器Spring ClouZuul

2017-07-31 15:47:50

Zuul統(tǒng)一處理

2024-09-25 08:10:00

Spring后端

2024-08-09 08:25:32

Spring流程注解

2017-06-12 11:09:56

計數(shù)架構(gòu)數(shù)據(jù)庫

2023-11-28 14:32:04

2020-12-29 10:25:07

漏洞JSONP注入

2021-11-11 16:14:04

Kubernetes

2021-12-06 17:21:05

異常報錯故障

2021-08-17 11:20:25

Vue前端技巧

2024-08-01 09:10:03

2014-03-06 09:35:40

Git提交

2020-08-19 11:02:39

系統(tǒng)ssh登錄

2021-03-17 00:17:16

命令應急響應

2023-11-30 07:00:56

SpringBoot處理器

2019-08-22 14:02:00

Spring BootRestful APIJava

2021-10-11 19:34:03

全局格式項目

2025-08-05 02:25:00

點贊
收藏

51CTO技術棧公眾號

欧美爱爱小视频| 红桃一区二区三区| 中文字幕日产av| 影音先锋日韩精品| 精品国产成人系列| 久久久噜噜噜www成人网| 欧美一级二级三级区| 成人免费毛片片v| 国产精品狠色婷| 久久久无码精品亚洲国产| 一道本一区二区三区| 91精品国产乱码| 成人小视频在线看| 欧美黑人xx片| 亚洲欧洲国产日韩| 欧美亚洲精品日韩| 亚洲精品911| 捆绑紧缚一区二区三区视频| 97在线免费观看视频| 国产一二三区精品| 国产一区毛片| 亚洲高清av在线| 五月天婷婷在线观看视频| 亚洲精品在线影院| 午夜精品一区二区三区电影天堂 | 中文字幕免费一区二区三区| 亚洲人成电影在线| 91视频在线免费| 国产精品久久久久久久久久久久久久久| 色综合久久综合网欧美综合网| 久久亚洲国产成人精品无码区| 在线免费黄色| 欧美国产日韩一二三区| 蜜桃成人在线| 五十路在线视频| 岛国精品一区二区| 5g影院天天爽成人免费下载| 亚洲天堂视频在线| 日本亚洲最大的色成网站www| 国产91精品青草社区| 久一区二区三区| 欧美日韩精品一本二本三本 | 成人a在线观看高清电影| 精品国产精品自拍| 人妻无码久久一区二区三区免费| 中国av在线播放| 最新国产成人在线观看| 伊人av成人| 麻豆影视在线观看_| 国产欧美综合色| 日韩av在线一区二区三区| 黄视频在线观看免费| av电影一区二区| 麻豆久久久9性大片| 青青色在线视频| 久久精品免视看| 亚洲春色在线视频| 日本激情在线观看| 欧美国产视频在线| 懂色av一区二区三区四区五区| 黄色av电影在线播放| 亚洲精品福利视频网站| 欧美中文字幕在线观看视频| 成人一级福利| 在线国产电影不卡| 亚洲综合欧美在线| 日韩欧美激情电影| 亚洲白拍色综合图区| 中文字幕av观看| 禁断一区二区三区在线| 日韩亚洲成人av在线| 91插插插插插插| 18成人免费观看视频| 国产成+人+综合+亚洲欧洲| 中文字幕+乱码+中文字幕明步 | 综合久久婷婷| 26uuu日韩精品一区二区| 黄色片中文字幕| 久久精品国产一区二区三区免费看| 亚洲一区亚洲二区| 色一情一乱一区二区三区| 国产午夜亚洲精品理论片色戒 | 亚洲深夜激情| 国产精品自拍视频| 日本美女一级片| 中文字幕久久午夜不卡| 伊人网在线免费| 日本在线高清| 91精品国产一区二区人妖| 中文字幕第3页| 成人国产精品一级毛片视频| 欧美黑人性视频| 樱花视频在线免费观看| 国产九九视频一区二区三区| 欧美不卡三区| 污的网站在线观看| 91黄色免费看| 亚洲区 欧美区| 欧美日韩中字| 97精品久久久中文字幕免费| 国产一区二区三区成人| 97久久精品人人做人人爽| 偷拍盗摄高潮叫床对白清晰| 小视频免费在线观看| 日韩欧美一二区| 欧洲美熟女乱又伦| 一本久道久久久| 7777精品伊久久久大香线蕉语言 | 2019中文字幕在线观看| www国产一区| 中文字幕+乱码+中文字幕一区| 精品少妇在线视频| 国产精品欧美一区二区三区不卡| 亚洲天堂av图片| 日本熟女一区二区| 国产一区啦啦啦在线观看| 日本黑人久久| 色一区二区三区| 国产极品国产极品| 偷拍自拍在线视频| 一区在线观看视频| av动漫在线观看| 日韩有吗在线观看| 久久精品99久久香蕉国产色戒| 男人午夜免费视频| 国产精品久久久久久福利| 亚洲欧洲综合另类| 国产视频一区二区视频| 国产精品xxx在线观看| 俺也去精品视频在线观看| 国产情侣免费视频| 国产视频911| 国产免费毛卡片| 久久精品色综合| 久久人人爽人人| 亚洲AV无码乱码国产精品牛牛 | 欧美美女一区二区| 亚洲成人黄色av| 久久精品男女| 欧美日韩一区二区三区在线视频| 国产资源在线观看入口av| 精品sm捆绑视频| 久久精品国产亚洲av麻豆色欲| 国产福利电影一区二区三区| 在线看视频不卡| 香蕉久久一区| 久久精品精品电影网| 国产精品久久久久久免费免熟| 国产精品乱人伦中文| 尤物国产在线观看| 香蕉综合视频| 2019国产精品视频| 七七成人影院| 日韩av在线免费播放| 国产一区二区99| 久久网这里都是精品| 午夜视频在线瓜伦| 久久精品国产68国产精品亚洲| 在线中文字幕视频观看| 在线亚洲人成电影网站色www| 国产制服丝袜在线| 国产亚洲精品久久久久婷婷瑜伽| 久久精品国产美女| 综合在线影院| 最新国产精品拍自在线播放| 国产又粗又黄又爽的视频| 亚洲视频一区二区免费在线观看| 手机在线免费毛片| 激情亚洲网站| 欧美日韩综合久久| 日韩伦理一区二区| 欧美激情视频三区| 色播色播色播色播色播在线| 在线一区二区三区四区五区| 黄色录像免费观看| 国产成人免费在线| 国产女女做受ⅹxx高潮| 99久久婷婷| 国产一区二区三区四区五区加勒比| 亚洲精品mv| 播播国产欧美激情| 日本免费一区视频| 欧美午夜在线一二页| 欧美精品xxxxx| 久久久午夜电影| 国产性生活一级片| 美女久久网站| 免费cad大片在线观看| 日韩欧美中文字幕电影| 成人黄色在线免费| 人人草在线视频| 久久精品国产99国产精品澳门| 农村少妇久久久久久久| 欧美日韩和欧美的一区二区| 国产精品99re| 亚洲欧洲日韩av| 国产精品探花一区二区在线观看| 精品在线免费视频| av免费观看大全| 91精品久久久久久久蜜月| 久久国产一区| 欧美日韩黄网站| 国产精品成人播放| 51漫画成人app入口| 日韩有码片在线观看| 天堂资源最新在线| 日韩一区二区三区在线视频| 91视频久久久| 午夜视黄欧洲亚洲| 国产精品成人69xxx免费视频 | 国产精品视频999| 青青草原av在线| 日韩少妇与小伙激情| 毛片网站在线观看| 日韩av最新在线| 亚洲免费国产视频| 欧美一区二区三区四区高清| 这里只有精品免费视频| 欧美午夜影院在线视频| 国产真实乱人偷精品视频| 亚洲天堂中文字幕| 国产1区2区在线观看| 2019国产精品| 999精品免费视频| 丁香天五香天堂综合| 永久免费黄色片| 久久se精品一区二区| 男女污污的视频| 久久高清一区| 熟女性饥渴一区二区三区| 伊人影院久久| 日韩 欧美 视频| 亚洲视频福利| 国产美女永久无遮挡| 国产精品分类| 高清无码一区二区在线观看吞精| 亚洲欧美综合久久久| 五月天男人天堂| 你懂的国产精品永久在线| 影音先锋男人的网站| 亚洲乱码在线| 一二三四中文字幕| 欧美日韩亚洲一区在线观看| 欧美xxxx吸乳| 好看的av在线不卡观看| 丁香六月激情网| 国产欧美欧美| 国产精品少妇在线视频| 国产91绿帽单男绿奴| 欧美怡红院视频| 一级黄色免费看| 91精品国产综合久久香蕉的特点| 国产又黄又粗又长| 日韩精品中文字幕在线一区| 亚洲高清在线观看视频| 精品三级在线观看| 手机看片福利永久| 亚洲女人天堂av| 天堂аⅴ在线地址8| 欧美大胆a视频| a级片在线免费| 国产成人精品久久久| 日韩成人精品一区二区三区| 91观看网站| 香蕉久久精品| 亚洲欧美日韩精品久久久| 一级欧洲+日本+国产| 国内精品视频一区二区三区| 乱人伦精品视频在线观看| 国产 porn| 国产麻豆一精品一av一免费| 亚洲精品第二页| 久久久久久99久久久精品网站| 四虎影视一区二区| 亚洲综合久久久久| 黄色一级视频免费看| 欧美日韩国产一级片| 欧美熟妇乱码在线一区 | 日本福利在线| 欧美激情va永久在线播放| 超碰aⅴ人人做人人爽欧美| 国产日韩在线精品av| 国产精品白丝一区二区三区| 日本高清不卡一区二区三| 欧美久久一区| 日韩视频免费在线播放| 国产精品一区二区免费不卡 | 亚洲色大成网站www久久九九| 久久伊人成人网| 欧美亚洲高清一区| 日本黄色不卡视频| 色av中文字幕一区| 欧美男人天堂| 18成人免费观看网站下载| 国产欧美久久一区二区三区| 奇米777四色影视在线看| 日韩精品亚洲专区| 亚洲欧美日韩偷拍| 自拍偷拍欧美激情| 午夜精品免费观看| 亚洲电影免费观看高清完整版在线| 在线免费观看黄色av| 欧美一级电影在线| 视频亚洲一区二区| 一本久道久久综合狠狠爱亚洲精品| 中文一区二区| 韩国黄色一级片| 亚洲麻豆国产自偷在线| 波多野结衣视频观看| 日韩精品视频在线| 久久www人成免费看片中文| 成人xxxxx| 日韩欧美精品一区| 麻豆传传媒久久久爱| 94色蜜桃网一区二区三区| 国产精品99精品| 日韩免费看网站| 黄视频网站在线看| 国产欧美精品日韩| 国产传媒欧美日韩成人精品大片| 我的公把我弄高潮了视频| 国产一二精品视频| 免费看特级毛片| 在线电影院国产精品| 3p在线观看| 国产成人在线精品| 国产成人黄色| 999精品网站| 国产日产欧产精品推荐色| 黄色片中文字幕| 亚洲精品网站在线播放gif| 国产亚洲成av人片在线观看| 国产精品日韩欧美一区二区三区 | 九九亚洲视频| 男人操女人免费软件| 91亚洲精品乱码久久久久久蜜桃| 日本亚洲欧美在线| 亚洲国产精品字幕| 九色porny丨入口在线| 久久久www免费人成黑人精品| 激情丁香综合| 在线观看国产网站| 激情亚洲一区二区三区四区| 四虎电影院在线观看| 18久久久久久| 国产99精品一区| 密臀av一区二区三区| 中文字幕不卡在线观看| 一区二区三区亚洲视频| 美女av一区二区| 4438全国亚洲精品观看视频| 高清欧美精品xxxxx| bt欧美亚洲午夜电影天堂| 久久一区二区三区视频| 亚洲欧美一区二区激情| 国产激情久久| 成人手机在线播放| 99视频精品全部免费在线| 免费黄色av片| 久久久国产视频91| 成人精品毛片| 欧美日韩中文在线视频| 国产精品免费久久| 亚洲第一视频在线| 欧美孕妇性xx| 91九色精品| 成人免费看片载| 色综合久久九月婷婷色综合| 亚洲图片88| 国产乱码精品一区二区三区中文 | 欧美精品videosex| 欧美1o一11sex性hdhd| 麻豆国产精品一区二区三区| 欧美人与禽zozzo禽性配| 亚洲精品视频播放| 成人免费观看49www在线观看| 99色这里只有精品| 欧美国产精品一区| 亚洲成人一级片| 国产极品精品在线观看| 亚洲人成免费网站| 亚洲av无码一区二区二三区| 91麻豆精品国产91久久久久久久久| 91九色在线播放| 一区二区视频在线观看| 99久久婷婷国产综合精品电影 | 亚洲成人动漫在线| 97久久久精品综合88久久| 国产又大又黄又爽| 欧美在线一级视频| 欧美国产三区| 国产中年熟女高潮大集合| 日韩欧美精品三级| www.久久.com| 各处沟厕大尺度偷拍女厕嘘嘘| 中文字幕一区二| 六十路在线观看| 成人欧美一区二区三区黑人免费| 美国三级日本三级久久99 | 91精品免费观看|