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.
Możesz użyć http pakiet do korzystania z interfejsów API i pobierania stron dla skrobanie stron internetowych w Go.
Zaimportuj te pakiety, aby rozpocząć wykonywanie żądań HTTP w Go.
import (
"bajty"
"kodowanie/json"
„fmt”
„io/ioutil”
„sieć/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"
odpowiedź, błąd := http. Pobierz (adres URL)
jeśli błąd != zero {
fmt. Printf("Wystąpił błąd w żądaniu API %s", err. Błąd())
} w przeciwnym razie {
// kontynuuje [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.
} w przeciwnym razie {
//... [1] ciąg dalszy
responseData, błąd := ioutil. Przeczytaj wszystko (odpowiedź. Ciało)
jeśli błąd != zero {
fmt. Printf("Wystąpił błąd podczas przetwarzania treści żądania %s", err. Błąd())
} w przeciwnym razie {
// kontynuuje [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.
} w przeciwnym razie {
//... [2] ciąg dalszy
fmt. Drukujln(strunowy(DaneOdpowiedzi))
}
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.
rodzaj JSON struktura {
informacje strunowy
wiadomość strunowy
}
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: "spodziewam się sukcesu",
komunikat: "żądanie powinno zwrócić ",
}
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, błąd := json. Marszałek (jsonInstance)
jeśli błąd != zero {
fmt. Println("wystąpił błąd w JSON", err. Błąd())
} w przeciwnym razie {
// kontynuuje [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.
} w przeciwnym razie {
//... ciąg dalszy [1]
odpowiedź, błąd := http. Post (url, "aplikacja/json", bajty. Nowy bufor (jsonData))
jeśli błąd != zero {
fmt. Println("wystąpił błąd w żądaniu", err. Błąd())
} w przeciwnym razie {
// kontynuuje [2] ...
}
}
Ponownie możesz odczytać treść odpowiedzi za pomocą Czytaj wszystko metoda ioutil pakiet:
} w przeciwnym razie {
//... ciąg dalszy [2]
dane, błąd := ioutil. Przeczytaj wszystko (odpowiedź. Ciało)
jeśli błąd != zero {
fmt. Println("wystąpił błąd podczas odczytu treści żądania", err. Błąd())
} w przeciwnym razie {
fmt. Drukujln(strunowy(dane))
}
}
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.