Mengenal REST API & Cara Kerja HTTP

Memahami request, response, method, dan status code HTTP, lalu menulis handler Go pertamamu.

Part 1 dari 17 ± 30 menit Gratis

Apa itu API?

API (Application Programming Interface) adalah "pintu" yang dipakai program lain untuk meminta data atau menyuruh aplikasimu bekerja. Contoh: aplikasi cuaca di HP-mu tidak menyimpan data cuaca sendiri; ia bertanya ke sebuah API di internet, lalu menampilkan jawabannya.

Apa itu REST?

REST API adalah API yang berbicara lewat protokol HTTP (protokol yang sama dengan yang dipakai browser) dan mengikuti aturan sederhana: setiap data dianggap sebagai resource (sumber daya) yang punya alamat (URL), dan kita memakai method HTTP untuk menyatakan apa yang ingin dilakukan.

Di kursus ini kita membangun API untuk daftar tugas (todo) dari nol. Resource-nya adalah todos:

MethodAlamatArtinya
GET/todosAmbil semua todo
GET/todos/3Ambil todo nomor 3
POST/todosBuat todo baru
PUT/todos/3Ubah todo nomor 3
DELETE/todos/3Hapus todo nomor 3

Request dan Response

Semua komunikasi HTTP berupa pasangan request (permintaan dari client) dan response (jawaban dari server).

REQUEST                              RESPONSE
POST /todos HTTP/1.1                 HTTP/1.1 201 Created
Content-Type: application/json       Content-Type: application/json

{"title":"Belajar Go"}               {"id":1,"title":"Belajar Go","done":false}
└ method + alamat                    └ status code
└ header                             └ header
└ body (isi)                         └ body (isi)

Status code yang wajib kamu hafal

KodeArtiDipakai saat…
200 OKBerhasilGET, PUT berhasil
201 CreatedData baru dibuatPOST berhasil
204 No ContentBerhasil, tanpa isiDELETE berhasil
400 Bad RequestPermintaan salah formatJSON rusak
404 Not FoundTidak ditemukanID tidak ada
500 Internal Server ErrorServer bermasalahBug di kode kita

Handler: jantung API di Go

Go sudah menyediakan server HTTP di paket bawaan net/http, jadi kita tidak perlu framework. Satu permintaan ditangani oleh satu fungsi yang disebut handler, dengan bentuk yang selalu sama:

func Ping(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "pong")
}
  • r *http.Request — permintaan yang masuk (method, alamat, header, body). Kita membaca dari sini.
  • w http.ResponseWriter — "kertas jawaban". Apa pun yang kita tulis ke w akan dikirim sebagai isi response. Kita menulis ke sini.
  • fmt.Fprint(w, "pong") — sama seperti fmt.Println, tetapi tulisannya masuk ke w (bukan ke layar). Jika kita tidak menentukan status code, Go otomatis memakai 200 OK.

Cara berlatih di KelasIT

Server sungguhan perlu membuka port di komputermu, sedangkan kotak latihan di sini hanya menjalankan program lalu menampilkan output. Karena itu kita memakai paket net/http/httptest untuk menyimulasikan permintaan: httptest.NewRequest membuat request palsu, httptest.NewRecorder menampung jawabannya. Handler-mu bekerja persis sama seperti di server sungguhan. Bagian itu sudah disediakan di bawah garis "JANGAN diubah"; tugasmu hanya mengisi bagian yang ditandai ISI.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X