| .gitignore | ||
| .travis.yml | ||
| app.go | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
whoami
Tiny Go webserver that prints os information and HTTP request to output
Usage
Paths
/data?size=n: creates a response with a sizen./echo: webSocket echo./bench: always return the same response (1)./: returns the whoami information (request and network information)./api: returns the whoami information as JSON./health: heath checkGET,HEAD, ...: returns a response with the status code defined by thePOSTPOST: changes the status code of theGET(HEAD, ...) response.
Flags
cert: give me a certificate.key: give me a key.port: give me a port number. (default: 80)
Examples
$ docker run -d -P --name iamfoo containous/whoami
$ docker inspect --format '{{ .NetworkSettings.Ports }}' iamfoo
map[80/tcp:[{0.0.0.0 32769}]]
$ curl "http://0.0.0.0:32769"
Hostname : 6e0030e67d6a
IP : 127.0.0.1
IP : ::1
IP : 172.17.0.27
IP : fe80::42:acff:fe11:1b
GET / HTTP/1.1
Host: 0.0.0.0:32769
User-Agent: curl/7.35.0
Accept: */*
# update health check status
$ curl -H "Content-Type: application/json" -X POST -d '500' http://localhost:80/health
# calls the health check
$ curl -v http://localhost:8082/health
* Trying ::1:80...
* TCP_NODELAY set
* Connected to localhost (::1) port 80 (#0)
> GET /health HTTP/1.1
> Host: localhost:80
> User-Agent: curl/7.65.3
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Date: Mon, 16 Sep 2019 22:52:40 GMT
< Content-Length: 0