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.

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.

içe aktarmak (
"bayt"
"kodlama/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.

instagram viewer

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"
yanıt, hata := http. Al (url)

eğer hata != sıfır {
fmt. Printf("%s API isteğinden bir hata oluştu", err. Hata())
} başka {
// devam ediyor [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.

} başka {
//... [1] devam
answerData, err := ioutil. ReadAll (yanıt. Gövde)

eğer hata != sıfır {
fmt. Printf("%s istek gövdesi ayrıştırılırken bir hata oluştu", err. Hata())
} başka {
// devam ediyor [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.

} başka {
//... [2] devam
fmt. Yazdır(sicim(yanıtverisi))
}

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.

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 döndürür.

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

tip JSON yapı {
bilgi sicim
İleti sicim
}

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: "başarı bekliyor",
mesaj: "istek dönüş ",
}

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, hata := json. Mareşal (jsonÖrneği)
eğer hata != sıfır {
fmt. Println("JSON ile ilgili bir hata oluştu", err. Hata())
} başka {
// devam ediyor [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.

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.

} başka {
//... devamı [1]
yanıt, hata := http. Gönderi (url, "application/json", bayt. NewBuffer (jsonData))

eğer hata != sıfır {
fmt. Println("istekte bir hata oluştu", err. Hata())
} başka {
// devam ediyor [2] ...
}
}

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

} başka {
//... devam [2]
data, err := ioutil. ReadAll (yanıt. Gövde)

eğer hata != sıfır {
fmt. Println("istek gövdesi okunurken bir hata oluştu", err. Hata())
} başka {
fmt. Yazdır(sicim(veri))
}
}

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.

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.