在 Debian 上“配置 Swagger”通常有两种常见场景:
下面我分别说明,你可以按需选择。
sudo apt update
sudo apt install -y nginx curl
cd /var/www
sudo curl -L https://github.com/swagger-api/swagger-ui/archive/refs/heads/master.tar.gz -o swagger-ui.tar.gz
sudo tar -xzf swagger-ui.tar.gz
sudo mv swagger-ui-master swagger-ui
编辑 Nginx 配置:
sudo nano /etc/nginx/sites-available/swagger
示例配置:
server {
listen 80;
server_name swagger.example.com;
root /var/www/swagger-ui/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/swagger /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
编辑:
/var/www/swagger-ui/dist/swagger-initializer.js
修改:
url: "https://petstore.swagger.io/v2/swagger.json"
改成你自己的 swagger.json 或 openapi.yaml 地址。
sudo apt install -y openjdk-17-jdk maven
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
http://localhost:8080/swagger-ui.html
FastAPI 自带 Swagger:
pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/items")
def read_items():
return [{"id": 1}]
运行:
uvicorn main:app --host 0.0.0.0 --port 8000
访问:
http://服务器IP:8000/docs
sudo ufw allow 80
swagger.json 跨域或路径错误如果你能告诉我:
我可以给你更精确的 Debian 配置方案。