Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var BlockChannel string
BlockChannel is the name of the channel that should be used for blocking the api subscription key
View Source
var DB *redis.Client
DB is the db client for the redis persistent storage
View Source
var RateChannel = make(chan RateRequest)
RateChannel receives the rate updation requests
View Source
var ResetChannel <-chan *redis.Message
ResetChannel receives the redis api usage reset channel
View Source
var ResetChannelName string
ResetChannelName is the name of the reset channel
View Source
var UsageChannel <-chan *redis.Message
UsageChannel receives the redis api usage channel
Functions ¶
This section is empty.
Types ¶
type APIUsage ¶
type APIUsage struct { Key string `json:"key"` //Key is the key associated with the api usage MaxUsage int `json:"usage"` //MaxUsage is the maximum allowed usage CurrentUsage int `json:"current"` //CurrentUsage is the current usage Email string `json:"email"` //Email is the email associated with the key }
APIUsage represents the api usage of the key
type RateRequest ¶
type RateRequest struct { KeyHash string //KeyHash is used to store the rate info in redis cache Type Type //Type of the rate update request }
RateRequest is the request to update the rate
type Type ¶
type Type uint
Type is the type of the request for rate limitng go routine
const ( //ADD will add the current usage of an api with 1 ADD Type = iota //RESET will reset the the current api usage to 0 RESET //BLOCK request is to block the api token BLOCK //STATUS request is to know the status of a token STATUS //OK request indicates that the status of the token is ok and not blacklisted OK )
Click to show internal directories.
Click to hide internal directories.