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