跳到主要内容
版本:0.3.x

内置中间件

Sharkable 为多个 ASP.NET Core 中间件功能提供了内置集成:

限流

配置限流策略并应用到端点。

builder.Services.AddShark(opt =>
{
opt.ConfigureRateLimiter(r =>
{
r.AddFixedWindowLimiter("fixed", o =>
{
o.PermitLimit = 10;
o.Window = TimeSpan.FromSeconds(1);
});
});
});

var app = builder.Build();
app.UseShark();

app.MapGet("hello", () => "hi").SharkRequireRateLimiting("fixed");

输出缓存

配置输出缓存策略并应用到端点。

builder.Services.AddShark(opt =>
{
opt.ConfigureOutputCache(c =>
{
c.AddPolicy("cache1h", b => b.Expire(TimeSpan.FromHours(1)));
});
});

var app = builder.Build();
app.UseShark();

app.MapGet("hello", () => "hi").SharkCacheOutput("cache1h");

健康检查

启用 /healthz 端点。

builder.Services.AddShark(opt =>
{
opt.EnableHealthChecks = true;
});

健康检查返回 text/plain 响应 healthy,状态码 200。

CORS

配置 CORS 策略。

builder.Services.AddShark(opt =>
{
opt.ConfigureCors(c =>
{
c.AddDefaultPolicy(p => p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});
});

API 密钥认证

用 API 密钥保护所有端点。请求必须包含有效的 X-Api-Key 头。

builder.Services.AddShark(opt =>
{
opt.ApiKeys = ["your-secret-key-here"];
});

JWT Bearer 认证

配置 JWT 认证,带有预设的最佳实践。认证失败返回 UnifiedResult 格式。

builder.Services.AddShark(opt =>
{
opt.ConfigureJwt(
authority: "https://your-issuer.com",
audiences: ["your-api"],
configure: jwt =>
{
// 可选的额外配置
}
);
});