Just a simple Go server that echoes the data sent to it.
You're going to need dep for this project. Clone the repository and run dep ensure. If you don't have your Go path set up, keep reading.
You can run this project solely through Docker. The included Dockerfile is set up to pull down the dependencies, build the project and then create an image out of just the executable.
Run docker build -t goecho . to get an image built and then run docker run -it --name <some_name> -p 8080:80 goecho to get the server started. The container itself exposes port 80.
This is the standard hello world response just to check that the server is running.
This is the first of the two echo endpoints on the server. This will echo back any query parameters sent to the server in the response. For example,
For the query
curl http://localhost:8080/get?foo=bar&baz=batThe server will return
{
"status": "ok",
"queryParams": {
"foo": "bar",
"baz": "bat"
}
}The second endpoint echoes the body of the POST request back in the response. For example,
For the query
curl -X POST -d '{ "foo": "bar", "baz": "bat" }' http://localhost:8080/postThe server will return
{
"status": "ok",
"body": {
"foo": "bar",
"baz": "bat"
}
}For this endpoint, the server only supports strings as values, anything else will lead to unintended behavior.