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

簡聊Fastapi框架中的OpenAPI規范

開發
我們可以使用OpenAPI規范來定義接口的各種細節,其中可以包括請求和響應的數據結構、參數、錯誤處理等信息。

OpenAPI規范(也稱為Swagger規范),在Fastapi框架中它主要用來定義和文檔化API接口。

關于OpenAPI規范是一種用于描述和定義Web API的標準化規范。它可以使用JSON或YAML等格式來描述API的各種元數據信息等細節,如接口路徑、請求方法、請求和響應的數據結構、參數、錯誤處理等。

通過使用OpenAPI規范,我們可以輕松地生成API文檔,并且可以使用各種工具來自動生成客戶端代碼、進行接口測試等。如Swagger UI,項目啟動后就可以查看到具體的路由定義信息,并可以進行調試等。

在整個框架應用中主要表現為:我們可以通過使用裝飾器和Python類型提示來定義API接口相關信息。框架本身會根據我們定義的一些相關規則信息自動生成OpenAPI文檔,并提供一個交互式的API文檔頁面,可以在其中查看和測試API接口。 這個文檔頁面基于Swagger UI,它可以根據OpenAPI規范自動生成,并提供了一些方便的功能,比如請求參數的驗證和自動生成請求示例等。

應用主要場景:

我們可以使用OpenAPI規范來定義接口的各種細節,其中可以包括請求和響應的數據結構、參數、錯誤處理等信息。這樣可以使得我們的API接口更加清晰、易于理解和使用。

1.定義應用app對象的元數據

python
from fastapi import FastAPI

app = FastAPI(title="項目標題I", description="項目文檔描述", version="1.0.0")

在上面的代碼中,主要是通過參數定義為我應用示例對應的以及相關API元數據,例如標題、描述和版本號。

2.定義路由的元數據

@app.get("/items/{item_id}", summary="路由標題", description="路由描述說明")
def get_item(item_id: int):
    return {"item_id": item_id}

在上面的代碼中,主要是通過裝飾器參數為路由添加元數據,例如摘要和描述信息。 當然還有其他的參數可以傳入。

3.定義模型的元數據

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = Field(..., description="描述信息")

OpenAPI 自定義和擴展

1.示例

在fastapi框架提供了一個openapi的自定義參數,如下代碼所示:

app.openapi = custom_openapi

基于上面的openapi我就可有針對進行擴展和自定義其他擴展字段信息,如下示例代碼:

def custom_openapi():
    if app.openapi_schema:
        return app.openapi_schema
    openapi_schema = get_openapi(
        title="FastAPIBoilerplate",
        version="0.0.1",
        summary="FastAPIBoilerplate",
        description='框架模板',
        routes=app.routes,
    )
    openapi_schema["info"]["x-logo"] = {
        "url": "https:xxxxxxxx"
    }
    app.openapi_schema = openapi_schema
    return app.openapi_schema

如上代碼中:我們通過獲取app實例對象中已自動生成的 OpenAPI 規范后,在它毒藥的 info 對象中添加一個 x-custom 字段。這個字段可以是任何 JSON 兼容的數據,例如字符串、數字、布爾值、列表或字典。如此完成后,當我們訪問:

http://127.0.0.1:31120/openapi.json

即可獲取到如下圖所示的結果:

當然我們還可以擴展其他的參數項: 如下代碼所示:

 openapi_schema["info"]["x-custom"] = "自定義數據信息"

2.自定義和擴展作用和說明

一般通過在 OpenAPI 規范中添加額外的、非標準的信息一般可以用于:

  • 提供額外的文檔信息。
  • 集成其他工具參數信息。
  • 包含額外的元數據。如 API 的版本歷史、貢獻者列表、相關資源的鏈接等。
責任編輯:趙寧寧 來源: 程序員小鐘同學
相關推薦

2025-06-03 04:00:00

Spring框架配置

2021-08-09 06:57:41

CodeReview流程

2025-06-05 01:45:00

Spring框架適配器

2020-07-16 14:40:23

大數據計算框架

2020-12-11 11:11:44

原子類JavaCAS

2019-12-02 16:23:03

Python編程語言“垃圾”回收

2022-08-30 07:39:57

C++namespace隔離

2022-06-08 10:13:24

接口設計規范

2022-08-26 00:35:31

Java工作流系統

2021-05-12 08:54:56

FastAP web 框架數據庫操作

2019-12-12 14:52:10

數據庫腳本

2022-11-09 08:05:15

JavaScriptsuper()

2022-03-06 20:35:41

并發串行CAP

2024-10-16 15:11:58

消息隊列系統設計

2021-01-04 08:09:07

Linux內核Watchdog

2021-06-30 07:19:35

微服務業務MySQL

2018-07-23 15:28:29

HTTPCookieHeader

2024-03-28 09:02:25

PythonGetattr工具

2022-01-19 17:11:05

JavaScript數據工具

2022-05-26 10:25:19

PythonWeb框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美电影在线观看网站 | 日屁视频 | 亚洲午夜小视频 | 红桃视频一区二区三区免费 | 亚洲女人天堂成人av在线 | 国产日韩精品视频 | 亚洲精品一区二三区不卡 | 毛片网络 | 精品国产一区二区三区av片 | 中文字幕一区在线观看视频 | 欧美一区二区三区在线播放 | 亚洲国产专区 | 国产专区在线 | 欧美 日韩 国产 成人 | 欧美日韩精品一区二区 | 黄色一级大片在线观看 | 一级毛片视频免费观看 | 国产在线一区二区三区 | 暴草美女 | 午夜精品久久 | 亚洲精品乱码久久久久久按摩观 | 蜜臀网 | 欧美一区二区在线播放 | 北条麻妃99精品青青久久 | 九九热精品视频 | 99视频在线播放 | 国产99热在线 | 精品国产31久久久久久 | 欧美亚洲另类丝袜综合网动图 | 99婷婷 | 国产精品自产拍 | 午夜噜噜噜 | 国产91久久久久 | 日本亚洲欧美 | 天堂在线中文字幕 | 91色在线视频 | 日本在线视频中文字幕 | 一级无毛片 | 天天夜夜操| 日韩中文字幕视频 | 91tv在线观看 |