ratelimit/cmd/example/main.go

30 lines
564 B

package main
import (
"fmt"
"log"
"net/http"
"time"
"go.wperron.io/ratelimit"
)
func main() {
hello := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
})
// A simple Hello World handler wrapped in a RateLimitedHandler
l := ratelimit.NewLimiter(1_000, time.Second)
handler := &ratelimit.RateLimitedHandler{
Next: hello,
Limiter: l,
}
log.Printf("Starting server on :8080")
if err := http.ListenAndServe(":8080", handler); err != nil {
log.Println(err)
}
log.Println("Server stopped")
}