Tenon.AspNetCore.OpenApi.Extensions 的示例项目,展示了如何使用和配置 Scalar UI OpenAPI 扩展包。
- JWT Bearer 认证集成
- 数组参数处理
- 主题定制
- 完整的 XML 文档
- 克隆仓库:
git clone <repository-url>
cd samples/OpenApiSample- 运行项目:
dotnet run- 访问 API 文档:
http://localhost:5000/scalar/v1
使用 JWT Bearer 认证:
{
"Jwt": {
"Authority": "https://localhost:5001",
"ClientId": "weather_api_client",
"Audience": "weather_api"
}
}自定义 Scalar UI 主题:
{
"ScalarUI": {
"Theme": {
"DarkMode": true,
"Colors": {
"primary": "#1976d2",
"secondary": "#424242",
"success": "#2e7d32",
"error": "#d32f2f"
}
}
}
}支持逗号分隔的数组参数:
GET /WeatherForecast?days=1,2,3
Authorization: Bearer <token>响应示例:
[
{
"date": "2024-01-21",
"temperatureC": 20,
"summary": "Warm"
}
]支持请求体中的数组:
POST /WeatherForecast/batch
Content-Type: application/json
Authorization: Bearer <token>
{
"cities": ["北京", "上海", "广州"],
"days": [1, 2, 3]
}响应示例:
[
{
"date": "2024-01-21",
"temperatureC": 20,
"summary": "北京: Warm"
}
]OpenApiSample/
├── Controllers/
│ └── WeatherForecastController.cs # API 控制器
├── Models/
│ ├── WeatherForecast.cs # 天气预报模型
│ └── WeatherForecastRequest.cs # 请求模型
├── Program.cs # 应用程序入口
├── appsettings.json # 主配置文件
└── appsettings.Development.json # 开发环境配置
- Tenon.AspNetCore.OpenApi.Extensions
- Microsoft.AspNetCore.Authentication.JwtBearer
- Scalar.AspNetCore
- Microsoft.AspNetCore.OpenApi
-
认证配置:
- 使用环境特定的认证服务器
- 配置适当的作用域
- 启用 HTTPS
-
API 文档:
- 添加完整的 XML 注释
- 提供请求和响应示例
- 使用清晰的参数说明
-
开发建议:
- 开发环境启用详细日志
- 使用环境变量覆盖配置
- 遵循 RESTful 设计原则
-
开发环境:
- 自动启用 OpenAPI 文档
- 使用开发证书
- 启用详细日志
-
生产环境:
- 禁用 OpenAPI 文档
- 使用正式证书
- 配置正确的认证服务器
-
安全性:
- 始终使用 HTTPS
- 验证所有请求的认证信息
- 适当配置 CORS 策略
MIT