Ubuntu 上 Swagger 常见错误与解决方法
一 访问与网络类问题
server {
listen 80;
location /swagger/ {
alias /var/www/swagger-ui/dist/;
index index.html;
try_files $uri $uri/ /swagger/index.html;
}
}
sudo chown -R www-data:www-data /var/www/swagger-ui/dist
sudo chmod -R 644 /var/www/swagger-ui/dist
sudo systemctl reload nginx
sudo ufw allow 8080/tcp
sudo ufw allow 3000/tcp
curl -I http://localhost:8080/swagger/
ss -tulpen | grep -E '(:8080|:3000)'
二 安装与运行 Swagger Editor 或 UI 失败
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker pull swaggerapi/swagger-ui
sudo docker run -p 8080:8080 swaggerapi/swagger-ui
访问:http://localhost:8080sudo apt update
sudo apt install -y nodejs npm
mkdir -p /opt/swagger && cd /opt/swagger
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.48.0.tar.gz
tar -xvf v3.48.0.tar.gz && rm v3.48.0.tar.gz
npm init -y
npm install express --save
cat > index.js <<'EOF'
const express = require('express');
const app = express();
app.use('/swagger', express.static('swagger-ui-3.48.0/dist'));
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.log('Server listening on 3000'));
EOF
node index.js
访问:http://localhost:3000/swagger三 Java Spring 项目集成 Swagger 报错
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo"))
.paths(PathSelectors.any())
.build();
}
}
四 .NET Core 项目集成 Swagger 报错
五 兼容性与跨域问题
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowedOriginPatterns(Arrays.asList("*"));
config.setAllowedMethods(Arrays.asList("*"));
config.setAllowedHeaders(Arrays.asList("*"));
config.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}