FastAPI 學習之路(三十七)元數據和文檔 URL

實現前的效果

那么如何實現呢,第一種方式如下:

from routers.items import item_router
from routers.users import user_router"""
自定義FastApi應用中的元數據配置Title:在 OpenAPI 和自動 API 文檔用戶界面中作為 API 的標題/名稱使用。Description:在 OpenAPI 和自動 API 文檔用戶界面中用作 API 的描述。Version:API 版本,例如 v2 或者 2.5.0。
"""from fastapi import FastAPI# 實現方式1
app = FastAPI(title="這是測試Title",description="這是測試description",version="這是測試version"
)app.include_router(user_router, prefix="/u", tags=["users"])
app.include_router(item_router, prefix="/i", tags=["items"])

實現后的效果

你也可以使用參數 openapi_tags,為用于分組路徑操作的不同標簽添加額外的元數據。

它接受一個列表,這個列表包含每個標簽對應的一個字典。

每個字典可以包含:

  • name(必要):一個 str,它與路徑操作和 APIRouter 中使用的 tags 參數有相同的標簽名。
  • description:一個用于簡短描述標簽的 str。它支持 Markdown 并且會在文檔用戶界面中顯示。
  • externalDocs:一個描述外部文檔的 dict:
    • description:用于簡短描述外部文檔的 str。
    • url(必要):外部文檔的 URL str。?

使用方式

from routers.items import item_router
from routers.users import user_router"""
自定義FastApi應用中的元數據配置Title:在 OpenAPI 和自動 API 文檔用戶界面中作為 API 的標題/名稱使用。Description:在 OpenAPI 和自動 API 文檔用戶界面中用作 API 的描述。Version:API 版本,例如 v2 或者 2.5.0。
"""from fastapi import FastAPI# 實現方式2
tags_metadata = [{"name": "這類似第一種方式的title","description": """這類似第一種方式的description"""},{"name": "items","description": "創建和查找items","externalDocs": {"description": "這是使用詳細文檔","url": "http://localhost:8000/i/items"}}
]app = FastAPI(openapi_tags=tags_metadata
)app.include_router(user_router, prefix="/u", tags=["users"])
app.include_router(item_router, prefix="/i", tags=["items"])

實現效果如下,和第一種方式有些許區別

自定義設置文檔url地址

app = FastAPI(openapi_tags=tags_metadata,docs_url="/openapi",redoc_url="/apidoc"
)

你可以配置兩個文檔用戶界面,包括:

  • Swagger UI:服務于 /docs。
    • 可以使用參數 docs_url 設置它的 URL。
    • 可以通過設置 docs_url=None 禁用它。
  • ReDoc:服務于 /redoc。
    • 可以使用參數 redoc_url 設置它的 URL。
    • 可以通過設置 redoc_url=None 禁用它。

我們一直沒有看過redoc,我們今天看下

?

當然我們也可以禁用,可以根據我們的需求來。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44675.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【SGX系列教程】(五)enclave多線程測試,以及EPC內存測試

文章目錄 一. 概述二. 原理分析2.1 多線程在Enclave中的實現流程2.2 多線程和EPC內存分配之間的沖突2.3 解決多線程和EPC內存分配沖突的策略 三. 源碼分析3.1 代碼結構3.2 源碼3.2.1 App文件夾3.2.2 Enclave文件夾3.2.3 Makefile 3.3 總結 四.感謝支持 一. 概述 在Intel SGX環境…

Go語言特點

Go語言主要具有以下特點和優勢: 1. **高效的性能**:Go語言的性能與Java或C相似,通常比Python快30倍。 2. **并發性**:Go語言致力于簡化編程,其創新之處在于goroutines和通道,提供了輕量級的線程和gorouti…

從零開始學習嵌入式----C語言框架梳理與后期規劃

目錄 一、環境搭建. 二、見解 三、C語言框架梳理 四、嵌入式學習規劃流程圖(學習順序可能有變) 一、環境搭建. C語言是一門編程語言,在學習的時候要準備好環境。我個人比較喜歡用VS,具體怎么安裝請百度。學習C語言的時候,切忌…

【Spring】Spring Security 5及以上版本中`SecurityFilterChain`示例

1. 配置SecurityFilterChain 在Spring Boot應用程序中,通常通過配置類來定義SecurityFilterChain。Spring Boot 2.x及更高版本與Spring Security 5.x緊密集成,提供了簡化的配置方式。以下是一個基于Java配置的例子: import org.springframe…

HOW - 黑暗模式 Dark Mode

目錄 一、引入黑暗模式二、樣式生效方案代碼示例方法一:新建專用的黑暗模式樣式文件方法二:使用CSS變量或預處理器CSS變量示例:Sass示例: 方法三:添加特定的類名或屬性方法四:使用偽類和選擇器方法五&#…

應對高并發請求:服務器性能壓力的解決方案

應對高并發請求:服務器性能壓力的解決方案 在現代互聯網環境中,高并發請求是常見的挑戰。當大量請求同時涌向服務器,可能導致性能瓶頸,甚至服務器崩潰。為了解決這些問題,我們通常使用負載均衡和限流技術。本文將深入探討這些技術,并通過示例代碼展示如何實現。 1. 負載…

樹莓派pico入坑筆記,ssd1306使用

目錄 說明 后附進階玩法:顯示中文,外加簡單庫實現 官方模塊使用 使用樣例 方法說明 下面是繪圖支持的方法 進階玩法,顯示中文 方法,對漢字取字模,然后按像素對字模進行顯示 說明 circuitpython8.x使用iic接口驅…

get和 post的區別

get 是從服務器上獲取數據,post 是向服務器傳送數據。POST 比 GET 安全,因為數據在地址欄上不可見。 3.了解get 方式提交的數據最多只能有 1024 字節,而 post 則沒有此限制。 4.GET 使用 URL 或 Cookie 傳參。而 POST 將數據放在 request BOD…

類和對象——【運算符重載】

P. S.:以下代碼均在VS2019環境下測試,不代表所有編譯器均可通過。 P. S.:測試代碼均未展示頭文件iostream的聲明,使用時請自行添加。 博主主頁:Yan. yan. ??????????????????? ?? …

【vueUse庫Reactivity模塊各函數簡介及使用方法--中篇】

vueUse庫是一個專門為Vue打造的工具庫,提供了豐富的功能,包括監聽頁面元素的各種行為以及調用瀏覽器提供的各種能力等。其中的Browser模塊包含了一些實用的函數,以下是這些函數的簡介和使用方法: vueUse庫Sensors模塊各函數簡介及使用方法 vueUseReactivity函數1. reactiv…

宏任務與微任務對比【前端異步】

目錄 簡介微任務與宏任務的基本概念宏任務(Macrotasks)微任務(Microtasks)宏任務示例微任務示例微任務與宏任務的執行時序 結論 簡介 在JavaScript的異步編程中,理解事件循環(Event Loop)是至關…

Autogen和Crewai的對比

AutoGen和CrewAI是兩種用于開發人工智能Agent應用的框架,各有其獨特的特性和優勢。以下是對這兩者的詳細對比: 共同點 編程語言:兩者都使用Python編程語言。應用領域:都用于創建人工智能Agent應用程序。多代理對話:都…

Qt+MySQL實現社團管理系統

開發環境 ● Qt 5.14.1 ● Win10 ● Mysql 5.7.28 系統介紹 系統主要實現的功能如下圖所示 社團管理系統主要包含了以下幾個亮點功能 輪播圖顯示社團信息支持excel形式的導入導出學生信息權限控制(管理員、超級管理員、用戶) 系統效果展示 登錄界面…

AI學習指南機器學習篇-層次聚類合并策略

AI學習指南機器學習篇-層次聚類合并策略 在機器學習領域,層次聚類(Hierarchical Clustering)是一種常用的聚類方法,它通過不斷合并相似的聚類來構建聚類層次結構。在層次聚類中,聚類合并策略是非常關鍵的一環&#xf…

前端工程化(01):Webpack、Gulp、Grunt三大自動化構建工具對比

10年前端開發和UI設計老司機→貝格前端工場,為您分享。本期介紹三款自動化構建工具,看看他們的工作原理和差異化,幫助你來選擇。 Webpack、Gulp和Grunt都是前端構建工具,用于優化前端開發流程和提高開發效率。它們都可以自動化執…

c++ 的(引用)和*(指針)

在C中,&(引用)和*(指針)在函數參數中的使用有各自的特點和用途。下面是它們的具體使用方式以及它們之間的一些區別: 引用(&) 使用方式: 引用作為函數參數時,可…

Java8新語法

一、Java8新特性 JDK 8 正式版在 2013 年 9 月份發布。 Java8主要內容Lambda表達式函數式接口方法引用與構造器引用Stream API接口中的默認方法與靜態方法新時間日期API其他新特性Java8新特性簡介: 速度更快代碼更少(增加了新的Lambda表達式)強大的Stream API便于并行最大化減少…

c++棧內存和堆內存的基本使用

c棧內存和堆內存的基本使用 #include <iostream>// 定義一個簡單的結構體 struct Person {std::string name;int age; };int main() {// 棧內存分配int a 10; // 基本數據類型的棧內存分配Person person; // 結構體的棧內存分配person.name "John";person.a…

構建未來對話:從零開始實現基于Vue 3的AI聊天頁面

大家好&#xff0c;今天我們將一起探索如何從零開始&#xff0c;使用Vue 3構建一個AI對話頁面。這個過程不僅會讓我們了解Vue 3的新特性&#xff0c;還會讓我們對構建交互式Web應用有一個全新的認識。如果你是編程新手&#xff0c;別擔心&#xff0c;我會用通俗易懂的語言&…

【Linux命令基礎】vim的簡介

文章目錄 前言如何在Ubuntu中安裝VimVim的作用Vim的優勢vim的模式總結前言 在Linux環境中,我們經常需要編輯文本文件,無論是編寫代碼,還是修改配置文件。而在這些場景中,Vim編輯器無疑是我們的得力助手。Vim是從vi發展出來的一個文本編輯器,代碼補全、編譯及錯誤跳轉等方…