Mengkonsumsi RESTful API dengan Go

Mengkonsumsi RESTful API dengan Go

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.





apa artinya sim tidak disediakan mm2?

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 .





VIDEO MAKEUSEOF HARI INI

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.



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/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.

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" 
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
// continues [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.

} else { 
// ... [1] continued
responseData, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Printf("There was an error from parsing the request body %s", err.Error())
} else {
// continues [2] ...
}
}

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

} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

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.

  hasil dari permintaan GET

Permintaan POST Sederhana di Go

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

game gratis yang tidak menggunakan data

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

type JSON struct { 
info string
message string
}

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: "expecting success",
message: "the request should return ",
}

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.

FF0ED9650D2AC350A71C4CE143C44932222296432

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.

dapat diatur untuk meluncurkan tugas atau program di waktu mendatang, termasuk saat startup

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.

} else { 
// ... continued [1]
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))

if err != nil {
fmt.Println("there was an error with the request", err.Error())
} else {
// continues [2] ...
}
}

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

} else { 
// ... continued [2]
data, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Println("there was an error reading the request body", err.Error())
} else {
fmt.Println(string(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.

  hasil dari permintaan POST

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.