Dalam HTTP, terdapat yang namanya response code, response code meruoakan representasi kode response. Dari response code ini kita bisa melihat apakah sebuah request yang kita kirim itu sukses di proses oleh server atau gagal. Ada banyak sekali response code yang bisa kita gunakan saat membuat web, detailnya bisa anda lihat di https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Mengubah Response Code
Secara default, jika kita tidak menyebutkan response code, maka response code nya adalah 200 OK. Jika kita ingin merubahnya, kita bisa menggunakan function ResponseWriter.WriteHeader(int)
. Semua data status code juga sudah di sediakan di golang, jadi kita bisa gunakan variable yang sudah di sediakan https://github.com/golang/go/blob/master/src/net/http/status.go
package belajar_golang_web
import (
"fmt"
"io"
"net/http"
"net/http/httptest"
"testing"
)
func ResponseCode(writer http.ResponseWriter, request *http.Request) {
name := request.URL.Query().Get("name")
if name == "" {
writer.WriteHeader(http.StatusBadRequest)
fmt.Fprint(writer, "name is empty")
} else {
fmt.Fprintf(writer, "Hello %s", name)
}
}
func TestResponseCode(t *testing.T) {
request := httptest.NewRequest(http.MethodGet, "http://localhost:8080?name=Rendy", nil)
recorder := httptest.NewRecorder()
ResponseCode(recorder, request)
response := recorder.Result()
body, _ := io.ReadAll(response.Body)
fmt.Println(response.StatusCode)
fmt.Println(response.Status)
fmt.Println(string(body))
}

Penutup
Pada artikel kali ini kita telah belajar tentang response code pada golang web. Dan pada artikel selanjutnya saya akan membahas cookie pada golang web.