This example shows how to integrate the quota library into a GAE service. Not intended to be run on App Engine. A GAE demo can be found under examples/appengine/quota.
Startup:
$ go run .& <observe logs, wait for the server to start>
Verify that rate limiting works:
$ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 429 Rate Limit Exceeded> <wait 60 seconds> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 200 OK>
Verify that resetting quota works:
$ curl http://localhost:8800/global-rate-limit-reset <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 429 Rate Limit Exceeded>
Verify that multiple resets don't stack:
$ curl http://localhost:8800/global-rate-limit-reset <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-reset <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 200 OK> $ curl http://localhost:8800/global-rate-limit-endpoint <observe logs, expected 429 Rate Limit Exceeded>