日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

簡聊Fastapi框架中的OpenAPI規范

來源: 責編: 時間:2024-01-02 17:28:40 269觀看
導讀OpenAPI規范(也稱為Swagger規范),在Fastapi框架中它主要用來定義和文檔化API接口。關于OpenAPI規范是一種用于描述和定義Web API的標準化規范。它可以使用JSON或YAML等格式來描述API的各種元數據信息等細節,如接口路徑、

OpenAPI規范(也稱為Swagger規范),在Fastapi框架中它主要用來定義和文檔化API接口。2PK28資訊網——每日最新資訊28at.com

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

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

2PK28資訊網——每日最新資訊28at.com

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

應用主要場景:

我們可以使用OpenAPI規范來定義接口的各種細節,其中可以包括請求和響應的數據結構、參數、錯誤處理等信息。這樣可以使得我們的API接口更加清晰、易于理解和使用。2PK28資訊網——每日最新資訊28at.com

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

pythonfrom fastapi import FastAPIapp = FastAPI(title="項目標題I", description="項目文檔描述", version="1.0.0")

在上面的代碼中,主要是通過參數定義為我應用示例對應的以及相關API元數據,例如標題、描述和版本號。2PK28資訊網——每日最新資訊28at.com

2.定義路由的元數據

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

在上面的代碼中,主要是通過裝飾器參數為路由添加元數據,例如摘要和描述信息。 當然還有其他的參數可以傳入。2PK28資訊網——每日最新資訊28at.com

3.定義模型的元數據

from pydantic import BaseModelclass Item(BaseModel):    name: str    description: str = Field(..., description="描述信息")

OpenAPI 自定義和擴展

1.示例

在fastapi框架提供了一個openapi的自定義參數,如下代碼所示:2PK28資訊網——每日最新資訊28at.com

app.openapi = custom_openapi

基于上面的openapi我就可有針對進行擴展和自定義其他擴展字段信息,如下示例代碼:2PK28資訊網——每日最新資訊28at.com

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 兼容的數據,例如字符串、數字、布爾值、列表或字典。如此完成后,當我們訪問:2PK28資訊網——每日最新資訊28at.com

http://127.0.0.1:31120/openapi.json

即可獲取到如下圖所示的結果:2PK28資訊網——每日最新資訊28at.com

2PK28資訊網——每日最新資訊28at.com

當然我們還可以擴展其他的參數項: 如下代碼所示:2PK28資訊網——每日最新資訊28at.com

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

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

一般通過在 OpenAPI 規范中添加額外的、非標準的信息一般可以用于:2PK28資訊網——每日最新資訊28at.com

  • 提供額外的文檔信息。
  • 集成其他工具參數信息。
  • 包含額外的元數據。如 API 的版本歷史、貢獻者列表、相關資源的鏈接等。

本文鏈接:http://www.www897cc.com/showinfo-26-56428-0.html簡聊Fastapi框架中的OpenAPI規范

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面試官:說說JVM內存整體結構?線程私有還是共享的?

下一篇: 老生常談 C# 開發 Windows 消息循環機制的原理和流程

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 上思县| 于都县| 新余市| 精河县| 崇仁县| 体育| 四子王旗| 年辖:市辖区| 陆河县| 龙岩市| 金湖县| 宣武区| 寻乌县| 贡觉县| 东宁县| 吉木乃县| 大埔县| 宁晋县| 慈溪市| 全州县| 青田县| 五莲县| 平昌县| 精河县| 西乌| 邯郸市| 晋江市| 绍兴县| 上虞市| 柳林县| 茂名市| 镶黄旗| 岳普湖县| 巴马| 信宜市| 安福县| 黔东| 荥阳市| 海城市| 武山县| 襄樊市|