public virtual Task ReturnQuotaExceededResponse(HttpContext httpContext, ThrottleRule rule) { var message = string.IsNullOrEmpty(Options.QuotaExceededMessage) ? $"API calls quota exceeded! maximum admitted {rule.Limit} per {rule.Period}." : Options.QuotaExceededMessage; httpContext.Response.StatusCode = Options.HttpStatusCode; return(httpContext.Response.WriteAsync("{\"message\":\"" + message + "\"}")); }
public virtual void LogBlockedRequest(HttpContext httpContext, ClientRequest request, RequestCounter counter, ThrottleRule rule) { Logger.LogInformation($"Request {request.Path} from ClientId {request.ClientId} has been blocked, quota {rule.Limit}/{rule.Period} exceeded by {counter.TotalRequests}" + $". Blocked by rule {rule.Endpoint}, TraceIdentifier {httpContext.TraceIdentifier}."); }