Go ile RESTful API'leri Kullanma

Go ile RESTful API'leri Kullanma

RESTful API'ler, web üzerinden veri aktarımı için popüler mimarilerdir. RESTful API'ler tipik olarak HTTP kullanır ve bu da onları durumsuzluğun önemli olduğu durumlar için uygun hale getirir.





Herhangi bir sunucu tarafı dil gibi, Go'da HTTP protokolü ile etkileşime girebilir ve HTTP istekleri yapabilirsiniz.





Go'da RESTful API'leri Kullanmaya Başlarken

bu http paketi, Go'daki HTTP protokolüyle etkileşim kurmak için ihtiyaç duyacağınız işlevlerin çoğunu sağlar. Bu, HTTP istekleri yapmayı içerir ve mutlaka ihtiyacınız yoktur. Gin veya veritabanı gibi harici bağımlılıklar .





GÜNÜN YAPILAN VİDEOSU

kullanabilirsiniz http API'leri tüketmek ve sayfaları almak için paket Go'da web kazıma .

Go'da HTTP istekleri yapmaya başlamak için bu paketleri içe aktarın.



bir video nasıl duvar kağıdı olarak ayarlanır
import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

kullanacaksın bayt bayt dilimlerini işlemek için paket, json istek verilerini biçimlendirmek için paket, fmt standart çıktıya yazmak için paket, ioutil girdi ve çıktı paketi ve http istekleri göndermek için paket.

Go'da Basit Bir GET İsteği

Tipik ALMAK bir sunucudan okuma verileri ister ve API'nin doğasına ve belirtimine bağlı olarak veriler için parametreler sağlayabilir.





Bu öğreticide, httpbin'in basit istek ve yanıt hizmetini kullanarak RESTful API'leri nasıl kullanacağınızı öğreneceksiniz.

Go ile bir HTTP isteği yapma örneği:





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] ...
}

bu url değişken, isteği gönderdiğiniz uç noktadır. bu Almak yöntem URL'yi alır, Almak request ve üstbilgileri ve gövdesi de dahil olmak üzere yanıtı döndürür.

Gereksinimlerinize bağlı olarak istekteki herhangi bir hatayı işleyebilirsiniz. Herhangi bir hata yoksa, ihtiyacınız olan bilgileri Almak rica etmek.

Windows 7'yi xp'ye benzetmek
} 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] ...
}
}

Cevaplar Gövde alan yanıtın gövdesini tutar. Kullanmak Hepsini oku yöntemi ioutil paketi, yanıt gövdesini okuyabilir ve olası hataları işleyebilirsiniz.

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

bu başka deyimi, okuma işleminde herhangi bir hata yoksa yanıt gövdesini konsolunuza yazdırır.

İşte sonucu ALMAK httpbin'in uç noktasına istek.

  GET isteğinin sonucu

Go'da Basit Bir POST İsteği

Tipik POST istekleri, sunucuya veri yükleri sağlar ve sunucu, işleme bağlı olarak bir yanıt verir.

İşte POST isteğinin bir parçası olarak sunucuya bir JSON yükünü kodlamak için basit bir yapı.

type JSON struct { 
info string
message string
}

bu JSON yapıya sahip bilgi ve İleti dize alanları ve istek için bir yapı örneği başlatacaksınız.

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

jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}

bu url değişken, httpbin web sitesindeki POST isteği bitiş noktasını saklar. bu jsonÖrneği değişken, yapılandırılmış verileri depolamak ve göndermek için kullanabileceğiniz JSON yapısının bir örneğidir.

kullanabilirsiniz mareşal yöntemden json istek için JSON'u biçimlendirmek için paket.

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

bu mareşal method ayrıca işleyebileceğiniz bir hata döndürür. JSON sıralama işleminde herhangi bir hata yoksa, POST isteğinde bulunmaya devam edebilirsiniz.

Windows 10 sağ tık görev çubuğu çalışmıyor

kullanabilirsiniz Postalamak POST istekleri yapma yöntemi. bu Postalamak yöntem, URL uç noktasını, isteğin içerik türünü ve yükün arabelleğini alır. Yanıt ve bir hata döndürür.

} 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] ...
}
}

Yine, yanıt gövdesini kullanarak okuyabilirsiniz. Hepsini oku yöntemi ioutil paket:

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

bu Println ifadesi, konsolunuza HTTP isteğinin sonucunu verir.

olarak httpbin belgeleri belirtir, bu POST uç noktası, gönderdiğiniz istek verilerini döndürür.

  POST isteğinin sonucu

Go'da Web Uygulamaları Oluşturmak Kolay

Go'da bağımlılıklar olmadan çeşitli işlevlere sahip web uygulamaları oluşturabilirsiniz.

bu http paketi, işlemlerinizin çoğu için ihtiyaç duyacağınız işlevlere sahiptir. Bu paketi aşağıdakiler gibi başkalarıyla birlikte kullanabilirsiniz. json JSON işlemleri için paket, bağlam sinyalleme paketi ve şablonlama için şablon paketi. Standart kütüphanede başka birçok paket var.