Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara membuat permintaan API menggunakan Golang

Cara membuat permintaan API menggunakan Golang

PHPz
PHPzasal
2023-04-14 09:33:431182semak imbas

Golang ialah bahasa pengaturcaraan moden, dan ia semakin popular dalam bidang bahasa belakang. Kelebihannya termasuk pemprosesan serentak yang cekap, keselamatan memori, dan mekanisme pengumpulan sampah. Dalam artikel ini, kami akan meneroka cara membuat permintaan API menggunakan Golang.

Pertama, kita perlu mulakan dengan memasang Golang. Pakej pemasangan mudah alih Golang boleh dimuat turun dari laman web rasmi https://golang.org/dl/.

Selepas pemasangan selesai, kami perlu memasang klien HTTP. Dalam artikel ini, kami akan menggunakan pakej "net/http" dan pakej "json". Kedua-dua pakej ini adalah perpustakaan standard yang disertakan dengan Golang, jadi kami tidak perlu memasangnya.

Kami perlu menentukan struktur untuk menyimpan data yang kami minta. Dalam contoh ini, kami akan meminta REST API dan mendapat respons JSON. Oleh itu, kita memerlukan struct untuk menghuraikan JSON dan menyimpan respons.

Seterusnya, kita perlu mencipta klien HTTP. Di Golang, kami menggunakan jenis "http.Client" untuk mencipta klien HTTP. Pelanggan ini membolehkan kami menentukan tamat masa dan pilihan lain.

Seterusnya, kita perlu menentukan permintaan HTTP. Di Golang, kami menggunakan fungsi "http.NewRequest()" untuk membuat permintaan HTTP. Fungsi ini membolehkan kami menentukan jenis permintaan, URL, pengepala, Badan dan parameter lain.

Seterusnya, kami perlu menghantar permintaan HTTP dan mendapatkan respons. Di Golang, kami menggunakan fungsi "client.Do()" untuk menghantar permintaan HTTP. Fungsi ini akan mengembalikan struktur "http.Response", yang mengandungi respons yang kami perlukan dan beberapa metadata.

Akhir sekali, kita perlu menghuraikan respons JSON. Dalam Golang, kami menggunakan fungsi "json.Unmarshal()" untuk menghuraikan respons JSON. Menggunakan fungsi ini, kami boleh menukar data JSON ke dalam jenis struktur yang kami tentukan.

Ringkasnya, ini ialah rangka kerja API permintaan Golang asas.

package main

import (
    "net/http"
    "encoding/json"
    "fmt"
    "time"
)

type ApiResponse struct {
    Data string `json:"data"`
}

func main() {
    client := &http.Client{
        Timeout: time.Second * 10,
    }

    req, err := http.NewRequest("GET", "https://api.example.com/data", nil)
    if err != nil {
        fmt.Println(err)
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", "Bearer my_token")

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
    }

    defer resp.Body.Close()

    var apiResponse ApiResponse
    err = json.NewDecoder(resp.Body).Decode(&apiResponse)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(apiResponse.Data)
}

Dalam contoh ini, kami menghantar permintaan HTTP GET ke "https://api.example.com/data" dan API akan mengembalikan respons JSON. Kami mula-mula mencipta klien HTTP, dan kemudian menggunakan kaedah "http.NewRequest()" untuk membuat permintaan HTTP yang menggunakan maklumat pengepala seperti "Jenis Kandungan" dan "Kebenaran". Akhir sekali, kami menggunakan "client.Do()" untuk menghantar permintaan dan kaedah "json.Unmarshal()" untuk menghuraikan respons JSON.

Ringkasan:

Sangat mudah untuk menggunakan klien HTTP untuk meminta API di Golang. Kami hanya perlu menggunakan pakej "net/http" dan pakej "json" dalam perpustakaan standard untuk melengkapkan permintaan dan menghuraikan respons. Akhir sekali, kami boleh menukar respons API kepada jenis struktur yang kami tentukan untuk digunakan dalam program kami.

Atas ialah kandungan terperinci Cara membuat permintaan API menggunakan 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