-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Closed
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Milestone
Description
NOTE - This is the original draft of the proposal. The updated proposal is at this comment: #42667 (comment)
namespace Microsoft.AspNetCore.RateLimiting
+ public interface IRateLimiterMetadata
+ {
+ }
+ public interface IRequireRateLimiterMetadata : IRateLimiterMetadata
+ {
+ string PolicyName { get; }
+ }
+ public class RequireRateLimiterMetadata : IRequireRateLimiterMetadata
+ {
+ public RequireRateLimiterMetadata (string policyName)
+ public string PolicyName { get; }
+ }
+ public interface IDisableRateLimiterMetadata : IRateLimiterMetadata
+ {
+ }
+ public class DisableRateLimiterMetadata : IDisableRateLimiterMetadata
+ {
+ public RequireRateLimiterMetadata ()
+ }
public interface IRateLimiterPolicy<TPartitionKey>
{
- Func<OnRejectedContext, CancellationToken, ValueTask>? OnRejected { get; }
+ ValueTask OnRejected(OnRejectedContext onRejectedContext, CancellationToken cancellationToken)
}
namespace Microsoft.AspNetCore.Builder
public static class RateLimiterApplicationBuilderExtensions
{
public static IApplicationBuilder UseRateLimiter(this IApplicationBuilder app)
- public static IApplicationBuilder UseRateLimiter(this IApplicationBuilder app, RateLimiterOptions options)
}
+ public static class RateLimiterServiceCollectionExtensions
+ {
+ public static IServiceCollection AddRateLimiter(this IServiceCollection services, Action<RateLimiterOptions > configureOptions)
+ }
public static class RateLimiterOptionsExtensions
{
- public static RateLimiterOptions AddNoLimiter(this RateLimiterOptions options, string policyName)
}
public static class RateLimiterEndpointConventionBuilderExtensions
{
+ public static TBuilder DisableRateLimiting<TBuilder>(this TBuilder builder) where TBuilder : IEndpointConventionBuilder
}
Q's - keep OnRejected
as a Func
because it's nullable? Change extension methods like AddTokenBucketLimiter
to AddTokenBucketLimiterPolicy
? Add an attribute for MVC Controllers?
Metadata
Metadata
Assignees
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedarea-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions