Catatan belajar Go, dari setup project sampai bikin HTTP server dengan JSON response

Belajar Go: Bikin HTTP Server Sederhana
1 mins
137 words
Loading views

Overviewh2

Catatan pribadi waktu belajar Go. Tujuannya biar kalau lupa, tinggal baca lagi. Di sini kita bikin HTTP server kecil yang mengembalikan JSON, tanpa library tambahan, hanya standard library.

A. Setup projecth2

Pastikan Go sudah terinstall.

go version

Buat folder project lalu init module.

mkdir hello-go && cd hello-go
go mod init hello-go

B. Hello Worldh2

Buat file main.go.

main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}

Jalankan:

go run .

C. HTTP serverh2

Ganti isi main.go dengan server yang punya satu endpoint /health.

main.go
package main
import (
"encoding/json"
"log"
"net/http"
)
type Response struct {
Status string `json:"status"`
}
func health(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(Response{Status: "ok"})
}
func main() {
http.HandleFunc("/health", health)
log.Println("listening on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}

Coba dari terminal lain:

curl localhost:8080/health
# {"status":"ok"}

Catatanh2

  • Tag json:"status" menentukan nama field di JSON. Tanpa itu, namanya jadi Status.
  • log.Fatal menghentikan program kalau server gagal start, misalnya port sudah dipakai.