深入了解Swagger訪問地址

Swagger是一種流行的API文檔化工具,可以通過生成API文檔和使用該文檔交互的方式簡化API測試和開發。在Swagger中,訪問地址是指API描述文件。本文將從幾個方面深入探討Swagger訪問地址的作用、用法以及相關的示例代碼。

一、創建Swagger訪問地址

我們可以在使用Swagger之前創建Swagger訪問地址。Swagger訪問地址是使用Swagger UI來訪問API文檔的URL。在許多情況下,這個URL直接由API的發布者提供。

使用下面的代碼,定義一個基本信息對象和一個路徑對象,並將它們合併成OpenAPI規範對象。這將是一個基本的示例,用於描述API的Swagger訪問地址。

const OpenApi = {
    "openapi": "3.0.0",
    "info": {
        "title": "API",
        "version": "1.0.0"
    },
    "paths": {
        "/api/users": {
            "get": {
                "summary": "Get a list of users",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    }
};

在Swagger UI中這個URL的顯示將如下所示,我們可以非常容易地了解到API的信息:

二、獲取Swagger訪問地址

創建好Swagger訪問地址後,我們需要獲取Swagger訪問地址。這可以通過將Swagger UI包含在應用程序中實現。

使用下面的代碼,打開Swagger UI,將Swagger訪問地址傳遞給它,並將UI顯示在頁面中:

//引用SwaggerUI的JavaScript文件


//獲取DOM元素
const uiContainer = document.getElementById('swagger-ui');

//獲取Swagger訪問地址
fetch('/swagger.json')
    .then(response => response.text())
    .then(data => {
        const spec = JSON.parse(data);
        const ui = SwaggerUIBundle({
            spec: spec,
            dom_id: '#swagger-ui'
        })
        window.ui = ui
    });

這樣,我們就可以使用Swagger UI來訪問和測試API。下面是Swagger UI的一張示例截圖:

三、自定義Swagger訪問地址

在Swagger UI中,我們可以自定義Swagger訪問地址和相應的UI。這可以很大程度上提高API文檔的可讀性。

使用下面的代碼,我們可以通過設置調節Swagger UI中的訪問地址的路由,自定義Swagger訪問地址:

// 引用SwaggerUI的JavaScript文件


//獲取DOM元素
const uiContainer = document.getElementById('swagger-ui');

//引用Swagger的JavaScript文件
const swaggerJsonUrl = '/swagger.json';
//添加UI配置對象以自定義UI
const uiConfigObject = { url: swaggerJsonUrl, docExpansion: 'list', tagsSorter: 'alpha' };
//設置SwaggerUI的路由
const customRoutes = {
    validate: false,
    urls: [
        { url: "/api/docs", name: "API Doc" },
        { url: "/api/redoc", name: "API Redoc" },
        { url: "/api/custom-swagger", name: "Custom Swagger UI" }
    ]
};

通過設置一個自定義路由,我們可以輕鬆訪問到自定義的Swagger UI。下面是一個示例截圖:

四、使用Swagger Editor編輯Swagger訪問地址

Swagger Editor是一個在線編輯器,可以幫助我們更輕鬆地創建Swagger訪問地址。在Swagger Editor中,我們可以將許多定義組合在一起,並在Swagger UI中使用這個規範。Swagger Editor還帶有實時呈現和文檔化工具。

使用下面的代碼,我們可以在Swagger Editor中編輯Swagger訪問地址:

//引用Swagger Editor的網頁地址
const swaggerEditorPath = 'https://editor.swagger.io/?url=';
// 獲取Swagger訪問地址
const swaggerJsonUrl = '/swagger.json';
const encodedJsonUrl = encodeURIComponent(swaggerJsonUrl);
const swaggerEditorUrl = `${swaggerEditorPath}${swaggerJsonUrl}`;

//使用窗口打開編輯器
const editorWindow = window.open(swaggerEditorUrl, "Swagger Editor");
editorWindow.focus();

這樣,我們就可以打開Swagger Editor,開始創建和編輯Swagger訪問地址。下面是Swagger Editor的一張示例截圖:

五、通過Swagger安全控件保護Swagger訪問地址

訪問Swagger訪問地址通常需要授權。通過Swagger安全控件,我們可以在Swagger中完成身份驗證和授權操作,從而保證訪問安全性。

下面是保護Swagger訪問地址的示例代碼:

//引入Swagger中的設置
const security = [
  {
    ApiKeyAuth: []
  }
];
//API授權
SwaggerUIBundle({
  spec: spec,
  dom_id: '#swagger-ui',
  deepLinking: true,
  displayOperationId: false,
  defaultModelsExpandDepth: -1,
  presets: [
    SwaggerUIBundle.presets.apis,
    SwaggerUIStandalonePreset
  ],
  plugins: [
    SwaggerUIBundle.plugins.DownloadUrl,
    SwaggerUIBundle.plugins.SwaggerJsUrl,
    SwaggerUIBundle.plugins.ConfigsPlugin
  ],
  layout: 'BaseLayout',
  configsPlugin: {
    authActions: {
      ApiKeyAuth: {
        logout: (auth) => { console.log('Logout', auth) },
        onLoggedIn: (auth) => { console.log('Logged In', auth) }
      }
    },
    security,
    codeGeneratorOptions: {
      includeSchemes: true,
      includeProducesConsumes: true,
      includeProducesAndResponseTypes: true
    },
    useResCallback: true,
    opsStateResponses: true
  }
})

上述代碼可以保證我們在訪問Swagger訪問地址時能夠進行安全控制操作。下面是一個例子截圖:

六、總結

Swagger是一個流行的API文檔化工具,可以通過生成API文檔和使用該文檔交互的方式簡化API測試和開發。Swagger訪問地址是指API描述文件。本文從創建Swagger訪問地址、獲取Swagger訪問地址、自定義Swagger訪問地址、使用Swagger Editor編輯Swagger訪問地址以及通過Swagger安全控件保護Swagger訪問地址等多個方面闡述了Swagger訪問地址的作用、用法以及相關示例代碼。讓我們深入了解Swagger訪問地址以提高我們對Swagger的使用效率。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241658.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:42
下一篇 2024-12-12 12:42

相關推薦

  • cmd看地址

    本文將從多個方面詳細闡述cmd看地址,包括如何查看本機IP地址、如何查看路由器IP、如何查看DNS服務器IP等等。 一、查看本機IP地址 要查看本機IP地址,首先需要打開cmd窗口…

    編程 2025-04-29
  • 尚硅谷官網地址用法介紹

    尚硅谷是國內一家領先的技術培訓機構,提供了眾多IT職業的培訓,包括Java、Python、大數據、前端、人工智能等方向。其官網地址為http://www.atguigu.com/。…

    編程 2025-04-29
  • Idea2022變更Git地址

    本文將從以下幾個方面對Idea2022變更Git地址進行詳細闡述: 一、GitHub上修改Git倉庫地址 1、登錄GitHub,找到需要修改的Git倉庫 2、在代碼頁面點擊右上角的…

    編程 2025-04-28
  • electron-egg打包後請求地址錯誤解決方法用法介紹

    本文將從多個方面對electron-egg打包後請求地址錯誤進行詳細闡述,並給出解決方法。 一、electron-egg打包後請求地址錯誤的表現 在使用 electron-egg …

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Python如何判斷IP地址合法性

    IP地址是網絡通信的基礎,因此判斷IP地址合法性是編程中常見的問題。Python作為一門強大的編程語言,提供了多種方法來判斷IP地址的合法性。 一、判斷IP地址格式是否正確 IP地…

    編程 2025-04-27
  • Python處理“該請求的地址無效”的解決方法

    本文將從以下幾個方面為大家詳細闡述在python中處理“該請求的地址無效”的解決方法。 一、檢查URL地址是否正確 當我們在使用Python發送網絡請求時,如果URL地址不正確,就…

    編程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在開發過程中引入了新的API `defineExpose`。在以前的版本中,我們經常使用 `$attrs` 和` $listeners` 實現父組件與子組件之間的通信,但…

    編程 2025-04-25
  • 深入理解byte轉int

    一、字節與比特 在討論byte轉int之前,我們需要了解字節和比特的概念。字節是計算機存儲單位的一種,通常表示8個比特(bit),即1字節=8比特。比特是計算機中最小的數據單位,是…

    編程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什麼是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一個內置小部件,它可以監測數據流(Stream)中數據的變…

    編程 2025-04-25

發表回復

登錄後才能評論