package main
import (
"encoding/json"
"log"
"net/http"
"strconv"
)
type Hello struct {
Message string `json:"message"`
}
func HelloServer(w http.ResponseWriter, req *http.Request) {
log.Println("Received a request from ", req.RemoteAddr)
w.Header().Set("Content-Type", "application/json")
if req.Method == "GET" {
encoder := json.NewEncoder(w)
hello := Hello{"Hello World"}
encoder.Encode(hello)
}
}
func main() {
port := 8080
// serve static content
http.Handle("/", http.FileServer(http.Dir("html")))
http.HandleFunc("/hello/", HelloServer)
log.Println("Starting HTTP server at", port)
err := http.ListenAndServe(":"+strconv.Itoa(port), nil)
if err != nil {
log.Fatal("Unable to start the server: ", err)
}
}
Saturday, May 23, 2015
How to Create a Simple REST Server in Go
Below is an example on how to create a simple REST server in Go.
Tuesday, May 5, 2015
How to Cross Compile Go Programs
If you download the Go binary for a particular platform, most likely that go binary distribution does not come with support for cross-compiling.
cd myapp GOOS=windows GOARCH=amd64 go build go build runtime: windows/amd64 must be bootstrapped using make.bashIn order to add support for cross-compiling in your Go distribution, you need to do the following.
cd $GOROOT/src GOOS=windows GOARCH=amd64 ./make.bash --no-cleanIn this example I am adding cross-compile support to target Windows 64-bit.
cd myapp GOOS=windows GOARCH=amd64 go buildNow you can easily build Windows 64-bit binaries on a Linux.
Subscribe to:
Comments (Atom)