下面以 Ubuntu 环境为例,按常见场景给你讲 Swagger 的集成方式。Swagger 通常指 OpenAPI + Swagger UI,用于接口文档展示和调试。
| 场景 | 推荐方案 |
|---|---|
| Java Spring Boot | springdoc-openapi / springfox |
| Node.js (Express) | swagger-ui-express |
| Python (FastAPI) | 内置 Swagger |
| 纯静态展示 | 直接部署 swagger-ui |
sudo apt update
sudo apt install -y openjdk-17-jdk nginx nodejs npm python3-pip
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
http://localhost:8080/swagger-ui.html
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public List<String> getUsers() {
return List.of("Alice", "Bob");
}
}
npm init -y
npm install express swagger-ui-express yamljs
const express = require("express");
const swaggerUi = require("swagger-ui-express");
const YAML = require("yamljs");
const swaggerDocument = YAML.load("./swagger.yaml");
const app = express();
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.listen(3000, () => {
console.log("Swagger: http://localhost:3000/api-docs");
});
openapi: 3.0.0
info:
title: User API
version: 1.0.0
paths:
/users:
get:
summary: Get users
responses:
200:
description: OK
pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/users")
def get_users():
return ["Alice", "Bob"]
启动:
uvicorn main:app --host 0.0.0.0 --port 8000
访问:
http://<ubuntu-ip>:8000/docs
server {
listen 80;
server_name api.example.com;
location /swagger-ui/ {
proxy_pass http://127.0.0.1:8080/;
}
}
✅ 端口访问不了
sudo ufw allow 8080
✅ 生产环境建议
你可以告诉我:
我可以直接给你 完整可运行示例。