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.

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 package untuk menggunakan API dan mengambil halaman untuk web scraping 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 mempelajari cara menggunakan RESTful API menggunakan layanan permintaan dan respons sederhana httpbin.

Berikut ini contoh membuat permintaan HTTP dengan Go:

url := "https:
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
}

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.

See also  Cara Membuat Halaman 404 di React Menggunakan React Router

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 {
responseData, err := ioutil.ReadAll(response.Body)

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

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

} else {
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.

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 menyandikan muatan JSON ke server sebagai bagian dari permintaan POST.

type JSON struct {
info string
message string
}

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

url := "https:

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.

jsonData, err := json.Marshal(jsonInstance)
if err != nil {
fmt.Println("there was an error with the JSON", err.Error())
} else {
}

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.

See also  Cocok dengan Tinder? Apa yang Harus Dilakukan Selanjutnya dan Cara Tetap Aman

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 {
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 {
}
}

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

} else {
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.

Seperti yang ditentukan oleh dokumentasi httpbin, 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.