Korzystanie z interfejsów API RESTful z Go

Korzystanie z interfejsów API RESTful z Go

Interfejsy API RESTful to popularne architektury do przesyłania danych w Internecie. Interfejsy API RESTful zazwyczaj używają protokołu HTTP, dzięki czemu są odpowiednie w przypadkach, w których ważna jest bezstanowość.





Jak każdy język po stronie serwera, możesz wchodzić w interakcje z protokołem HTTP i wysyłać żądania HTTP w Go.





Rozpoczęcie korzystania z interfejsów API RESTful w Go

The http pakiet zapewnia większość funkcji potrzebnych do interakcji z protokołem HTTP w Go. Obejmuje to wysyłanie żądań HTTP, a niekoniecznie potrzebujesz zewnętrzne zależności, takie jak Gin lub baza danych .





MAKEUSEOF WIDEO DNIA

Możesz użyć http pakiet do korzystania z interfejsów API i pobierania stron dla skrobanie stron internetowych w Go .

różnica między usb a i usb c

Zaimportuj te pakiety, aby rozpocząć wykonywanie żądań HTTP w Go.



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

Użyjesz bajty pakiet do manipulowania wycinkami bajtów, json pakiet do formatowania danych żądania, fmt pakiet do zapisu na standardowe wyjście, ioutil pakiet dla wejścia i wyjścia oraz http pakiet do wysyłania zapytań.

Proste żądanie GET w Go

Typowy DOSTAWAĆ żąda odczytu danych z serwera i może podać parametry danych w zależności od charakteru i specyfikacji API.





W tym samouczku dowiesz się, jak korzystać z RESTful API za pomocą prostej usługi żądania i odpowiedzi httpbin.

Oto przykład wykonania żądania HTTP za pomocą Go:





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

The adres URL zmienna to punkt końcowy, do którego wysyłasz żądanie. The Dostać metoda pobiera adres URL, wykonuje Dostać request i zwraca odpowiedź, w tym jej nagłówki i treść.

Możesz obsłużyć wszelkie błędy z żądania w zależności od Twoich wymagań. Jeśli nie ma błędów, możesz przystąpić do wyodrębnienia potrzebnych informacji z Dostać żądanie.

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

Odpowiedź Ciało pole zawiera treść odpowiedzi. Używając Czytaj wszystko metoda ioutil pakiet, możesz odczytać treść odpowiedzi i obsłużyć ewentualne błędy.

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

The w przeciwnym razie Instrukcja drukuje treść odpowiedzi na konsolę, jeśli nie ma błędów z operacji odczytu.

Oto wynik DOSTAWAĆ żądanie do punktu końcowego httpbin.

  wynik z żądania GET

Proste żądanie POST w Go

Typowe żądania POST dostarczają dane do serwera, a serwer zwraca odpowiedź w zależności od operacji.

Oto prosta struktura kodowania ładunku JSON na serwerze w ramach żądania POST.

type JSON struct { 
info string
message string
}

The JSON struktura ma informacje oraz wiadomość pola ciągów i zainicjujesz instancję struktury dla żądania.

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

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

The adres URL zmienna przechowuje punkt końcowy żądania POST ze strony httpbin. The jsonInstance zmienna jest instancją struktury JSON, której można używać do przechowywania i wysyłania uporządkowanych danych.

Możesz użyć Marszałek metoda z json pakiet do formatu JSON dla żądania.

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

The Marszałek Metoda zwraca również błąd, który możesz obsłużyć. Jeśli nie ma błędów w operacji organizowania JSON, możesz przystąpić do wykonania żądania POST.

Możesz użyć Poczta metoda wykonywania żądań POST. The Poczta Metoda przyjmuje punkt końcowy adresu URL, typ zawartości żądania i bufor ładunku. Zwraca odpowiedź i błąd.

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

Ponownie możesz odczytać treść odpowiedzi za pomocą Czytaj wszystko metoda ioutil pakiet:

jak znaleźć historię nieruchomości w Internecie
} 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))
}
}

The Println instrukcja wyświetla wynik żądania HTTP do konsoli.

Jako Dokumentacja httpbin określa, że ​​ten punkt końcowy POST zwraca dane żądania, które zostały wysłane.

  wynik z żądania POST

Tworzenie aplikacji internetowych w Go jest łatwe

W Go możesz tworzyć aplikacje internetowe o różnych funkcjach bez zależności.

The http pakiet posiada funkcje, których będziesz potrzebować w większości operacji. Możesz używać tego pakietu z innymi, takimi jak json pakiet dla operacji JSON, kontekst pakiet do sygnalizacji i pakiet szablonów do tworzenia szablonów. W standardowej bibliotece jest wiele innych pakietów.