RESTful API adalah arsitektur populer untuk transfer data di seluruh web. RESTful API biasanya menggunakan HTTP, membuatnya cocok untuk kasus-kasus di mana keadaan tanpa kewarganegaraan itu penting.

Seperti bahasa sisi server lainnya, Anda dapat berinteraksi dengan protokol HTTP dan membuat permintaan HTTP di Go.

Memulai Menggunakan RESTful API di Go

Itu http package menyediakan sebagian besar fungsionalitas yang Anda perlukan untuk berinteraksi dengan protokol HTTP di Go. Ini termasuk membuat permintaan HTTP, dan Anda tidak perlu dependensi eksternal, seperti Gin atau database.

Anda dapat menggunakan http paket untuk menggunakan API dan mengambil halaman untuk pengikisan web di Go.

Impor paket ini untuk mulai membuat permintaan HTTP di Go.

impor (
"byte"
"pengkodean/json"
"fmt"
"io/ioutil"
"bersih/http"
)

Anda akan menggunakan byte paket untuk memanipulasi irisan byte, json paket untuk memformat data permintaan, fmt paket untuk menulis ke output standar, the tidak berguna paket untuk input dan output, dan http paket untuk mengirim permintaan.

instagram viewer

Permintaan GET Sederhana di Go

Khas DAPATKAN permintaan membaca data dari server dan dapat memberikan parameter untuk data tergantung pada sifat dan spesifikasi API.

Dalam tutorial ini, Anda akan belajar cara menggunakan RESTful API menggunakan layanan permintaan dan respons sederhana httpbin.

Berikut ini contoh membuat permintaan HTTP dengan Go:

url := "https://httpbin.org/get"
respon, err := http. Dapatkan (url)

jika salah != nol {
fmt. Printf("Ada kesalahan dari permintaan API %s", err. Kesalahan())
} kalau tidak {
// lanjutkan [1] ...
}

Itu url variabel adalah titik akhir tempat Anda mengirim permintaan. Itu Mendapatkan metode mengambil URL, mengeksekusi Mendapatkan request, dan mengembalikan respons, termasuk header dan body-nya.

Anda dapat menangani kesalahan apa pun dari permintaan tergantung pada kebutuhan Anda. Jika tidak ada kesalahan, Anda dapat melanjutkan untuk mengekstrak informasi yang Anda butuhkan dari Mendapatkan meminta.

} kalau tidak {
//... [1] lanjutan
responseData, err := ioutil. Baca Semua (tanggapan. Tubuh)

jika salah != nol {
fmt. Printf("Terjadi kesalahan saat menguraikan badan permintaan %s", err. Kesalahan())
} kalau tidak {
// lanjutkan [2] ...
}
}

Tanggapannya Tubuh bidang memegang tubuh respons. Menggunakan Baca semua metode tidak berguna paket, Anda dapat membaca isi respons dan menangani kemungkinan kesalahan.

} kalau tidak {
//... [2] lanjutan
fmt. Cetak(rangkaian(data tanggapan))
}

Itu kalau tidak pernyataan mencetak badan respons ke konsol Anda jika tidak ada kesalahan dari operasi baca.

Berikut hasil dari DAPATKAN permintaan ke titik akhir httpbin.

Permintaan POST Sederhana di Go

Permintaan POST tipikal memberikan muatan data ke server, dan server mengembalikan respons tergantung pada operasinya.

Berikut adalah struct sederhana untuk mengkodekan payload JSON ke server sebagai bagian dari permintaan POST.

Tipe JSON struktur {
info rangkaian
pesan rangkaian
}

Itu JSON struktur memiliki info dan pesan bidang string, dan Anda akan menginisialisasi instance struct untuk permintaan tersebut.

url := "https://httpbin.org/post"

jsonInstance := JSON {
info: "mengharapkan kesuksesan",
pesan: "permintaan harus kembali ",
}

Itu url variabel menyimpan titik akhir permintaan POST dari situs web httpbin. Itu jsonInstance variabel adalah turunan dari struct JSON yang dapat Anda gunakan untuk menyimpan dan mengirim data terstruktur.

Anda dapat menggunakan Marsekal metode dari json paket untuk memformat JSON untuk permintaan.

jsonData, err := json. Marshal (jsonInstance)
jika salah != nol {
fmt. Println("Terjadi kesalahan pada JSON", err. Kesalahan())
} kalau tidak {
// lanjutkan [1] ...
}

Itu Marsekal metode juga mengembalikan kesalahan yang dapat Anda tangani. Jika tidak ada kesalahan dengan operasi marshaling JSON, Anda dapat melanjutkan untuk membuat permintaan POST.

Anda dapat menggunakan Pos metode untuk membuat permintaan POST. Itu Pos metode mengambil titik akhir URL, tipe konten permintaan, dan buffer payload. Ini mengembalikan respons dan kesalahan.

} kalau tidak {
//... lanjutan [1]
respon, err := http. Posting (url, "application/json", byte. NewBuffer (jsonData))

jika salah != nol {
fmt. Println("Ada kesalahan dengan permintaan", err. Kesalahan())
} kalau tidak {
// lanjutkan [2] ...
}
}

Sekali lagi, Anda dapat membaca isi tanggapan menggunakan Baca semua metode tidak berguna kemasan:

} kalau tidak {
//... lanjutan [2]
data, err := ioutil. Baca Semua (tanggapan. Tubuh)

jika salah != nol {
fmt. Println("Terjadi kesalahan saat membaca isi permintaan", err. Kesalahan())
} kalau tidak {
fmt. Cetak(rangkaian(data))
}
}

Itu Cetak pernyataan menampilkan hasil permintaan HTTP ke konsol Anda.

sebagai dokumentasi httpbin ditentukan, titik akhir POST ini mengembalikan data permintaan yang Anda kirimkan.

Membangun Aplikasi Web di Go Itu Mudah

Anda dapat membangun aplikasi web dengan berbagai fungsi di Go tanpa ketergantungan.

Itu http package memiliki fungsi yang Anda perlukan untuk sebagian besar operasi Anda. Anda dapat menggunakan paket ini dengan orang lain seperti json paket untuk operasi JSON, the konteks paket untuk pensinyalan, dan paket templat untuk templating. Ada banyak paket lain di perpustakaan standar.