Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara membuat pertanyaan API di Golang

Cara membuat pertanyaan API di Golang

PHPz
PHPzasal
2023-03-31 10:26:131468semak imbas

Golang ialah bahasa pengaturcaraan yang agak baharu tetapi telah menjadi pilihan pertama dalam kalangan pembangun. Prestasi tinggi dan keselarasan Golang menjadikannya pilihan yang ideal apabila membangunkan aplikasi, terutamanya apabila membina perkhidmatan berskala. Pertanyaan API Golang ialah tugas asas Artikel ini akan memperkenalkan cara melaksanakan pertanyaan API di Golang.

Pengenalan

API ialah singkatan Antara Muka Pengaturcaraan Aplikasi, dan pertanyaan API merujuk kepada operasi menggunakan permintaan HTTP GET untuk mengakses titik akhir API untuk mendapatkan data. API pertanyaan diperlukan oleh banyak perkhidmatan bahagian belakang, yang biasanya menyediakan data respons dalam format JSON atau XML.

Di Golang, terdapat beberapa cara untuk melaksanakan pertanyaan API. Menggunakan pakej bersih/http perpustakaan standard adalah salah satu kaedah yang paling biasa. Selain itu, terdapat beberapa pakej pihak ketiga yang boleh digunakan untuk melaksanakan pertanyaan API, seperti grequests, gorequest, httpclient dan resty.

Menggunakan pakej net/http perpustakaan standard untuk melaksanakan pertanyaan API

Menggunakan pakej net/http perpustakaan standard untuk melaksanakan pertanyaan API memerlukan beberapa langkah. Pertama, anda perlu mencipta klien http yang akan digunakan untuk mengakses titik akhir API. Dalam contoh berikut, kami akan menggunakan http.DefaultClient:

func main() {
    resp, err := http.DefaultClient.Get("https://jsonplaceholder.typicode.com/posts/1")
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }
    fmt.Println(string(body))
}

Dalam contoh ini, kami menggunakan http.DefaultClient untuk menghantar permintaan GET yang akan mengakses titik akhir API yang ditentukan. Kami menggunakan fungsi ReadAll daripada pakej ioutil untuk membaca badan tindak balas ke dalam rentetan dan kemudian mencetaknya ke konsol.

Anda juga boleh membuat permintaan tersuai menggunakan fungsi http.NewRequest, contohnya:

func main() {
    req, err := http.NewRequest("GET", "https://jsonplaceholder.typicode.com/posts/1", nil)
    if err != nil {
        log.Fatalln(err)
    }

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }
    fmt.Println(string(body))
}

Dalam contoh ini, kami menggunakan http.NewRequest untuk mencipta permintaan GET tersuai yang akan Mengakses titik akhir API yang ditentukan. Kami kemudian melaksanakan permintaan menggunakan fungsi http.DefaultClient.Do dan mengendalikan respons seperti dalam contoh sebelumnya.

Menggunakan pakej pihak ketiga untuk pertanyaan API

Selain pakej net/http perpustakaan standard, terdapat beberapa pakej pihak ketiga yang boleh digunakan untuk melaksanakan pertanyaan API di Golang . Berikut ialah beberapa contoh yang paling popular:

  1. grequests
func main() {
    resp, err := grequests.Get("https://jsonplaceholder.typicode.com/posts/1", nil)
    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp.String())
}

Dalam contoh ini, kami menggunakan pakej grequests untuk menghantar permintaan GET ke titik akhir API yang ditentukan dan gunakan Kaedah resp.String() menukarkan badan tindak balas kepada rentetan.

  1. gorequest
func main() {
    resp, _, errs := gorequest.New().Get("https://jsonplaceholder.typicode.com/posts/1").End()

    if errs != nil {
        log.Fatalln(errs)
    }

    fmt.Println(resp)
}

Dalam contoh ini, kami menggunakan pakej gorequest untuk menghantar permintaan GET ke titik akhir API yang ditentukan dan menggunakan pembolehubah resp untuk mengendalikan respons .

  1. httpclient
func main() {
    client := httpclient.Defaults(httpclient.Map{
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    })
    resp, err := client.Get("https://jsonplaceholder.typicode.com/posts/1")

    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp)
}

Dalam contoh ini, kami menggunakan pakej httpclient untuk mencipta klien http tersuai dan menggunakan klien itu untuk menentukan titik akhir API Hantar permintaan GET . Kami menggunakan pembolehubah resp untuk mengendalikan tindak balas.

  1. resty
func main() {
    client := resty.New()
    resp, err := client.R().Get("https://jsonplaceholder.typicode.com/posts/1")

    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp.String())
}

Dalam contoh ini, kami menggunakan pakej resty untuk mencipta klien http tersuai dan menggunakan klien ini untuk menghantar kepada permintaan GET titik akhir API yang ditentukan. Kami menggunakan fungsi resp.String() untuk menukar badan tindak balas kepada rentetan.

Kesimpulan

Dalam artikel ini, kami memperkenalkan cara membuat pertanyaan API di Golang menggunakan pakej net/http perpustakaan standard atau pakej pihak ketiga. Untuk kebanyakan senario pertanyaan API, pakej bersih/http perpustakaan standard berfungsi dengan cukup baik, terutamanya untuk permintaan GET yang mudah. Jika anda perlu mengendalikan permintaan dan respons yang lebih kompleks, anda boleh mencuba pakej pihak ketiga seperti grequests, gorequest, httpclient dan resty.

Menggunakan Golang untuk pertanyaan API boleh membantu anda mendapatkan data dengan mudah daripada perkhidmatan web, dan prestasi tinggi serta keselarasan Golang menjadikannya sesuai untuk mengendalikan data berskala besar. Dalam pembangunan sebenar, anda boleh memilih kaedah yang paling sesuai dengan anda untuk melaksanakan pertanyaan API berdasarkan keperluan anda.

Atas ialah kandungan terperinci Cara membuat pertanyaan API di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah format komen golang?Artikel seterusnya:Apakah format komen golang?