在Ubuntu上調試Swagger(現通常指的是OpenAPI)主要涉及安裝和配置Swagger UI以及可能的使用場景。以下是詳細的步驟和調試技巧:
安裝Docker:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
拉取Swagger UI鏡像:
docker pull swaggerapi/swagger-ui
運行Swagger UI容器:
docker run -p 80:8080 -v /path/to/swagger.json:/usr/src/app/swagger.json swaggerapi/swagger-ui
其中,/path/to/swagger.json 是你本地的Swagger JSON文件的路徑。
安裝Node.js和npm:
sudo apt update
sudo apt install nodejs npm
全局安裝Swagger UI:
sudo npm install -g swagger-ui-express
創建一個簡單的Express應用并集成Swagger UI:
mkdir swagger-demo
cd swagger-demo
echo 'const express = require("express"); const swaggerUi = require("swagger-ui-express"); const YAML = require("yamljs"); const app = express(); const swaggerDocument = YAML.load("./swagger.yaml"); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });' > index.js
echo 'swagger: \'2.0\' info: title: Sample API description: A sample API to demonstrate Swagger UI version: \'1.0.0\' paths: /users: get: summary: List all users responses: \'200\': description: An array of users schema: type: array items: ref: \'#/definitions/User\' definitions: User: type: object properties: id: type: integer name: type: string' > swagger.yaml
node index.js
使用Swagger Editor進行調試:
wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v3.16.1.tar.gz
tar -xvf v3.16.1.tar.gz
cd swagger-editor-3.16.1
npm install
npm install -g http-server
http-server -p 8080
http://localhost:8080 使用Swagger Editor。使用Visual Studio Code進行調試:
launch.json:{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"skipFiles": [
"<node_internals>/**"
]
}
]
}
node --inspect-brk app.js
自定義JavaScript腳本:
wwwroot/swagger-ui/ 目錄下創建一個 custom.js 文件。authorizeSwagger),用于在獲取token后自動授權Swagger。InjectJavascript 機制將 custom.js 腳本注入到Swagger UI中間件中,實現自動授權等功能。通過以上步驟和技巧,你應該能夠在Ubuntu上成功安裝、配置和調試Swagger,并進行API文檔的查看和測試。如果在安裝過程中遇到問題,可以參考相關的官方文檔或社區論壇尋求幫助。