To save a figure, send a POST
request to your running service something to say.
curl -d "Hello World" -X POST https://[your_domain]/cows/[figure_name]
To retrieve a figure, send a GET
request.
curl -i https://[your_domain]/cows/[figure_name]
When no env var is provided, the app won't connect to any storage. The POST
request will fail and the GET
request will always return a temporary figure.
Provide the following env vars to configure a Redis connection
type RedisConn struct {
Host string `envconfig:"REDIS_HOST"`
Port int `envconfig:"REDIS_PORT"`
}
The POST
request will save the figure in the Redis instance with 20s expiration time. With that 20s, GET
requests will get what you saved. After that, it will return 404
. If the value is retrieved from the Redis, the response header will have x-cow-cache-hit=true
.
Provide the following env vars in addition to the Redis env vars
type SQLConn struct {
Database string `envconfig:"DB_NAME"`
User string `envconfig:"DB_USER"`
Password string `envconfig:"DB_PASS"`
Socket string `envconfig:"DB_SOCKET"`
}
The POST
request will cache the figure in the Redis instance with 20s expiration time and persist the figure in the DB. GET
requests will get what you saved. The Redis will work as a pass-through cache. If it's a cache hit, the response header will have x-cow-cache-hit=true
.