精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国内外成人免费激情在线视频| 欧洲精品一区二区| 成人免费视频视频在| 国产成年人免费视频| 日韩精品欧美大片| 欧美中文字幕久久| 乱子伦一区二区| 人妻va精品va欧美va| 欧美一级网站| 在线看日韩欧美| wwwxxxx在线观看| 亚洲成人人体| 一区二区三区在线观看动漫| 久久久影院一区二区三区| 精品乱码一区内射人妻无码| 欧美福利一区| 亚洲性猛交xxxxwww| av在线免费观看不卡| 周于希免费高清在线观看| 国产精品家庭影院| 国产精品手机在线| 在线视频你懂得| 亚洲专区一区| 欧美成人精品在线观看| 国产三级视频网站| 免费观看性欧美大片无片| 色综合欧美在线| 国产欧美123| av电影在线播放高清免费观看| 国产99一区视频免费| 国产欧美精品一区二区三区介绍 | 成人毛片一区二区三区| 国产精品豆花视频| 久久精品久久久久久国产 免费| 一区二区三区免费在线观看视频 | 国产视频99| 国产精品视频a| 日韩av中文在线观看| 久久久久久久网站| 国产精品成人免费观看| 91青青国产在线观看精品| 亚洲免费人成在线视频观看| 久久久久久久久久影视| 国产精品1区| 欧美日韩精品三区| 992kp快乐看片永久免费网址| 91av久久| 亚洲第一搞黄网站| 成年人视频网站免费| caoporn免费在线视频| 国产精品毛片a∨一区二区三区| 蜜桃999成人看片在线观看| 欧美自拍偷拍一区二区| 成人综合婷婷国产精品久久蜜臀| 亚洲va电影大全| 国产精品无码AV| 国产一区二区精品在线观看| 91九色国产社区在线观看| 一区二区三区黄| 激情伊人五月天久久综合| 国产在线播放91| 国产乱码久久久| 国产一区二区三区不卡在线观看| 91精品综合久久久久久五月天| 国产一区二区三区三州| 激情六月婷婷综合| 91视频免费进入| 乱精品一区字幕二区| www.在线成人| 欧美日韩亚洲在线| 成人一区二区不卡免费| 国产精品进线69影院| av中文字幕av| 美女诱惑黄网站一区| 国产一级二级三级精品| 久久久国产精品黄毛片| 欧美黄在线观看| 欧美激情奇米色| 国产成人亚洲精品自产在线| 日本三级在线视频| 亚洲午夜免费| 亚洲第一免费网站| www.88av| 国产探花一区在线观看| 视频在线一区二区| 亚洲色婷婷一区二区三区| 亚洲午夜精品久久久久久app| 97精品国产91久久久久久| 福利网址在线观看| 黄网站免费久久| 国产一区二区无遮挡| 欧美新色视频| 一区视频在线播放| 18禁裸男晨勃露j毛免费观看| av毛片午夜不卡高**水| 欧美性xxxxxxxxx| 久久久久xxxx| 欧美中文一区| 久久天天躁狠狠躁夜夜av| 激情综合网五月婷婷| 裸体素人女欧美日韩| 成人午夜一级二级三级| 欧洲av在线播放| 日本一二三四高清不卡| 97超碰在线视| 免费在线成人激情电影| 欧美xxxxxxxx| 日本成人午夜影院| 韩国亚洲精品| 国产精品一区=区| 特黄视频在线观看| 国产精品夫妻自拍| 妺妺窝人体色www在线小说| 人人精品久久| 亚洲欧美日本精品| 免费一级a毛片夜夜看| 日韩精品久久久久久| 波多野结衣久草一区| 二区三区在线| 亚洲国产日韩a在线播放性色| 又色又爽又高潮免费视频国产| 午夜精品在线| 日韩在线观看免费高清| 日韩女同强女同hd| 国产九九视频一区二区三区| 欧美日韩亚洲在线| 黄色污网站在线观看| 日韩一区二区精品葵司在线| 人妻一区二区视频| 一区二区视频欧美| 92裸体在线视频网站| 成年人视频网站在线| 黄色成人在线播放| 色综合久久久无码中文字幕波多| 日韩在线视屏| 国产精品久久久久久av福利| 污视频网站在线播放| 亚洲综合色婷婷| 色婷婷综合在线观看| 久久国产成人午夜av影院宅| 国产成人精品久久久| 婷婷在线免费观看| 亚洲国产aⅴ天堂久久| 一区二区三区人妻| 伊人情人综合网| 91午夜在线播放| 黄色成人在线观看| 制服丝袜成人动漫| 日韩av手机在线免费观看| 免费人成在线不卡| 亚洲啪啪av| 免费在线观看一区| 国产亚洲美女精品久久久| 国产视频1区2区| 久久久久久久性| 91蝌蚪视频在线观看| 最新国产一区| 国产精品久久久久免费a∨大胸| 日本高清中文字幕二区在线| 色天天综合色天天久久| 国产伦精品一区二区三区视频女| 日韩极品在线观看| 亚洲精品成人久久久998| av在线一区不卡| 日韩中文字幕网址| 国产理论视频在线观看| 一区二区在线电影| 喷水视频在线观看| 久久久久欧美精品| 亚洲 国产 日韩 综合一区| 成人高清一区| 久久久91精品国产| 亚洲国产精品视频在线| 亚欧色一区w666天堂| 一区二区不卡免费视频| 日韩经典一区二区| 久久99国产精品一区| 91精品国产乱码久久久竹菊| 国内精品久久久久影院 日本资源| 污视频网站免费观看| 在线观看日韩毛片| 希岛爱理中文字幕| 成人福利视频在线看| 免费黄色福利视频| 91一区二区| 国产91精品一区二区绿帽| 国产无遮挡裸体视频在线观看| 亚洲美女视频网站| 夜夜躁很很躁日日躁麻豆| 一区二区三区丝袜| 国产三级国产精品| 轻轻草成人在线| 日本a在线天堂| heyzo久久| 粉嫩高清一区二区三区精品视频 | 国产欧美视频一区二区| 国产女同无遮挡互慰高潮91| 亚洲性色视频| 亚洲欧洲一区二区福利| 免费看久久久| 成人黄色av网站| 成人私拍视频| 欧美人在线观看| 国产二区在线播放| 亚洲精品一区二区三区福利| 国产裸体美女永久免费无遮挡| 又紧又大又爽精品一区二区| 久久亚洲AV无码专区成人国产| 国产成人精品三级| 三级a三级三级三级a十八发禁止| 亚洲第一网站| 秋霞在线一区二区| 精品一区在线| 国产日韩精品推荐| 国产一区二区三区亚洲综合| 国产精品白丝jk喷水视频一区| 暖暖在线中文免费日本| 久久久av网站| melody高清在线观看| 欧美精品一区二区久久婷婷| 一级黄色录像大片| 一本久道久久综合中文字幕| 久久久久久久福利| 综合久久久久综合| 日本成人午夜影院| 久久久九九九九| 亚洲久久久久久| 国产ts人妖一区二区| 一区二区三区视频网| 午夜在线一区| 国内精品在线观看视频| 午夜精品久久| 天堂av在线中文| 久久久久免费av| 亚洲国产激情一区二区三区| 九一成人免费视频| 久久精品女人的天堂av| 最新国产精品精品视频| 91一区二区三区| 精品国产乱码一区二区三区| 成人国内精品久久久久一区| 亚洲高清影院| 成人激情综合网| 国产精品一区免费在线| 成人欧美一区二区三区在线| 日韩五码电影| 91久久中文字幕| 国产一区2区在线观看| 91色精品视频在线| 久久久久久爱| 147欧美人体大胆444| 亚洲2区在线| 成人av网站观看| 精品福利一区| 麻豆91av| 成人激情在线| 亚洲AV无码成人精品一区| 亚洲国产一区二区在线观看| 大桥未久一区二区三区| 黄色成人精品网站| 欧美极品欧美精品欧美| 亚洲中字黄色| 一起操在线视频| 国产一区美女在线| 欧美男体视频| 国产女人18毛片水真多| 中文字幕制服丝袜一区二区三区| 成人在线一级片| 国产日本亚洲高清| www成人啪啪18软件| 日韩毛片在线免费观看| 欧美日韩免费一区二区| 国产综合自拍| 日韩成人激情视频| 亚洲三级黄色片| 亚洲午夜av久久乱码| h视频在线免费| 欧美成aaa人片免费看| 久草在线视频网站| 欧美一级电影久久| www.一区| 国产精品久久久久久免费观看 | 国产一区二区视频在线免费观看| 天堂99x99es久久精品免费| 日本一区二区三区视频在线观看 | 91精品麻豆| 国产在线一区二| 日韩大片在线播放| 黄色片免费在线观看视频| 一本一本久久| 91精品999| 91在线精品一区二区| www.日本高清视频| 亚洲一区二区三区中文字幕 | 欧美高清性xxxxhdvideosex| 日韩视频在线观看| 日本国产在线播放| 久久精品国产网站| av网页在线观看| 亚洲女厕所小便bbb| 91在线看视频| 欧美一区二区女人| 国产高清免费av在线| 欧美精品videossex性护士| 成人免费毛片嘿嘿连载视频…| 北条麻妃高清一区| 久久精品不卡| 黑人糟蹋人妻hd中文字幕| 国产一区日韩二区欧美三区| 色欲av无码一区二区三区| 亚洲免费观看高清完整 | 日韩一级精品视频在线观看| 欧美日韩影视| 久久久免费av| 精品中文字幕一区二区三区四区 | 日本视频在线免费观看| 青青久久aⅴ北条麻妃| 国产又粗又猛又爽又黄的视频四季 | 色偷偷噜噜噜亚洲男人| 欧美男男激情videos| 亚洲在线免费看| 久久亚洲在线| 不要播放器的av网站| av中文字幕在线不卡| 午夜69成人做爰视频| 欧美区视频在线观看| 国产小视频免费在线观看| 91国自产精品中文字幕亚洲| 欧洲一区在线| 日本特级黄色大片| 免费观看在线综合色| www.av天天| 色综合久久99| 色吊丝在线永久观看最新版本| 久久久久久久久久国产| 亚洲高清在线一区| 久久久久亚洲av无码专区喷水| 久草在线在线精品观看| 快灬快灬一下爽蜜桃在线观看| 色一区在线观看| 欧美女优在线观看| 欧美一区三区三区高中清蜜桃| 国产精品极品国产中出| 免费无码毛片一区二三区| 国产91精品一区二区麻豆网站| 农村黄色一级片| 日韩午夜av一区| 久久国产精品黑丝| 国产精品区免费视频| 精品96久久久久久中文字幕无| 在线观看你懂的视频| 一级特黄大欧美久久久| 91香蕉亚洲精品| 99国产精品久久一区二区三区| 超碰97在线看| 国产成人精品在线看| 久久精品www| 亚洲福利在线播放| 国模精品视频| 欧美在线一区二区三区四区| 日韩av不卡在线观看| 国产三级精品三级观看| 51午夜精品国产| 三级网站视频在在线播放| 国产v亚洲v天堂无码| 一本色道精品久久一区二区三区| 亚洲久久久久久| 欧美无砖砖区免费| 黄色在线播放网站| 国产精品sss| 国产精品久久久免费| 免费看黄色的视频| 欧美年轻男男videosbes| 黄av在线播放| 国产在线一区二区三区欧美| 欧美一级网站| 国产精品精品软件男同| 精品国产免费久久| 超级碰碰久久| 中文字幕成人一区| www.日韩av| 一级做a爱片久久毛片| 久久久噜噜噜久噜久久| 免费观看久久av| 日本精品一区在线| 欧美日韩国产中文字幕 | 给我免费播放日韩视频| 激情网站五月天| 亚洲精品中文在线观看| 三级视频网站在线| 成人在线观看视频网站| 国产欧美日韩亚洲一区二区三区| 国产又大又粗又爽的毛片| 91精品国产一区二区三区| 松下纱荣子在线观看| av中文字幕av| 中文字幕欧美三区| 日本人妻丰满熟妇久久久久久| 国产精自产拍久久久久久蜜| 亚洲激情不卡|