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/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

发表回复

登录后才能评论