30 lines
564 B
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")
|
|
}
|