SwaggerUI使用教程詳解

SwaggerUI是一款優秀的API文檔生成工具,可以幫助開發人員快速生成API文檔,並且容易導入到其他平台中,從而提高了API的可閱讀性和可維護性。在本篇文章中,我們將會介紹SwaggerUI的使用詳解、核心技術、實際應用等方面。

一、SwaggerUI的安裝與使用

SwaggerUI的安裝非常簡單,可以通過兩種方式來安裝。

第一種是使用npm安裝,這個方法比較簡單。只需要通過以下命令即可:

$ npm install swagger-ui

在上述命令執行完成後,在node_modules目錄下會生成一個名為”swagger-ui”的目錄,裡面包含了所有的SwaggerUI文件。

第二種是直接下載SwaggerUI壓縮包並解壓。下載地址為:https://github.com/swagger-api/swagger-ui/releases

安裝完成後,我們需要引入SwaggerUI的相關文件,以HTML頁面為例:

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>SwaggerUI示例</title>
      <link rel="stylesheet" type="text/css" href="./swagger-ui/dist/swagger-ui.css" />
   </head>
   <body>
      <div id="swagger-ui"></div>
      <script src="./swagger-ui/dist/swagger-ui-bundle.js" type="text/javascript"></script>
      <script src="./swagger-ui/dist/swagger-ui-standalone-preset.js" type="text/javascript"></script>
      <script type="text/javascript">
          window.onload = function() {
             // 填寫swagger.json的地址
             const ui = SwaggerUIBundle({
                url: "https://petstore.swagger.io/v2/swagger.json",
                dom_id: '#swagger-ui',
                presets: [
                  SwaggerUIBundle.presets.apis,
                  SwaggerUIStandalonePreset
                ],
                layout: "StandaloneLayout"
             })
          }
      </script>
   </body>
</html>

在上述代碼中,我們首先引入了SwaggerUI的CSS樣式文件和兩個JS文件。其中CSS文件用於美化SwaggerUI界面,後兩個JS文件包含了SwggerUI所需的核心代碼。

在HTML代碼中,我們添加了一個

二、SwaggerUI的核心技術

1. SwaggerUI的配置

SwaggerUI的配置參數為一個對象,包含了SwaggerUI的配置信息、樣式設置等。在上述代碼中,我們通過url參數指定了swagger.json的地址,通過dom_id參數指定了SwaggerUI的UI容器。

另外,在UI容器中還有一些參數可以設置,比如title、description、termsOfService等。我們可以通過以下代碼來進行設置:

const ui = SwaggerUIBundle({
   url: "https://petstore.swagger.io/v2/swagger.json",
   dom_id: '#swagger-ui',
   presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
   ],
   layout: "StandaloneLayout",
   // 設置title、description、termsOfService
   config: {
      title: "SwaggerUI示例",
      description: "SwaggerUI使用教程詳解",
      termsOfService: "https://github.com/swagger-api/swagger-ui/blob/master/LICENSE"
   }
})

2. SwaggerUI的主題設置

SwaggerUI支持自定義主題,並且提供了一個主題編輯器,藉助這個工具我們可以方便地生成自己的主題。具體步驟如下:

  1. 訪問主題編輯器:https://labsyspharm.github.io/swagger-ui-themes/
  2. 選擇、調整主題參數
  3. 點擊Generate按鈕生成主題CSS文件
  4. 將生成的CSS文件引入到HTML頁面中
  5. 創建一個SwaggerUI實例時,在配置參數中添加theme參數

例如,我們可以通過以下代碼來創建一個紅色主題的SwaggerUI實例:

const ui = SwaggerUIBundle({
   url: "https://petstore.swagger.io/v2/swagger.json",
   dom_id: '#swagger-ui',
   theme: 'red',
   presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
   ],
   layout: "StandaloneLayout",
})

三、SwaggerUI的實際應用

在實際應用中,SwaggerUI可以幫助我們快速生成API文檔,並且可以通過Swagger Editor進行編輯、校驗。除此之外,SwaggerUI還可以和各種後端語言和框架集成,具體的步驟如下:

  1. 使用Swagger Editor編輯並生成swagger.json文件
  2. 將swagger.json文件放到後端項目目錄下
  3. 在後端項目中使用Swagger/OpenAPI代碼生成工具生成API介面函數
  4. 將API介面函數添加到後端代碼中
  5. 啟動後端項目,並訪問SwaggerUI UI界面
  6. 在SwaggerUI中測試API介面函數

下面,我們以Node.js和Express框架為例,演示如何利用SwaggerUI生成和測試API:

步驟一:安裝SwaggerUI和Express

$ npm install express
$ npm install swagger-ui

步驟二:編輯swagger.json文件

在Swagger Editor中編輯swagger.json文件。具體操作如下:

  1. 訪問Swagger Editor:https://editor.swagger.io/
  2. 編輯swagger.json文件
  3. 生成swagger.json文件

下面是一個swagger.json的示例:

{
  "swagger": "2.0",
  "info": {
    "title": "Node.js與Express演示介面",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "getRoot",
        "responses": {
          "200": {
            "description": "操作成功",
            "schema": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}

步驟三:生成API介面函數

在終端中輸入以下命令:

$ npx swagger-jsdoc -d swagger.json -o swagger.js

上述命令會在當前目錄下生成一個名為swagger.js的文件,其中包含了API介面函數的定義。下面是swagger.js的示例代碼:

const express = require("express")
const swaggerUi = require("swagger-ui-express")
const swaggerJsdoc = require("swagger-jsdoc")

const app = express()
const port = 3000

// 定義伺服器配置
const options = {
  definition: {
    openapi: "3.0.0",
    info: {
      title: "Node.js與Express演示介面",
      version: "1.0.0",
    },
  },

  // API文件路徑
  apis: ["./swagger.js"],
}

const specs = swaggerJsdoc(options)

// 設置中間件
app.use("/docs", swaggerUi.serve)
app.get(
  "/docs",
  swaggerUi.setup(specs, {
    explorer: true,
  })
)

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

// API介面函數
/**
 * @swagger
 * /:
 *   get:
 *     description: 獲取根路徑
 *     responses:
 *       200:
 *         description: 成功
 *         content:
 *           application/json:
 *             schema:
 *               type: string
 */
app.get("/", (req, res) => {
  res.send("Hello World!")
})

可以看到,在swagger.js文件中,我們定義了API介面函數,並添加了Swagger注釋。這個注釋包含了該API的請求方法、路徑、描述、參數、返回值等信息。

步驟四:啟動伺服器

在終端中輸入以下命令:

$ node app.js

可以看到,在SwaggerUI中會顯示我們定義的API介面函數。點擊API方法名稱,即可在SwaggerUI中測試API介面函數。

四、總結

SwaggerUI是一款優秀的API文檔生成工具,可以幫助開發人員快速生成API文檔,並且容易導入到其他平台中,從而提高了API的可閱讀性和可維護性。本篇文章針對SwaggerUI的安裝與使用、核心技術、實際應用等方面進行了詳細的闡述,並給出了實際應用的例子,希望能夠對讀者有所幫助。

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

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

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28
  • Python語言程序設計教程PDF趙璐百度網盤介紹

    Python語言程序設計教程PDF趙璐百度網盤是一本介紹Python語言編程的入門教材,本文將從以下幾個方面對其進行詳細闡述。 一、Python語言的特點 Python語言屬於解釋…

    編程 2025-04-28

發表回復

登錄後才能評論