Verwendung von RESTful-APIs mit Go

Verwendung von RESTful-APIs mit Go

RESTful-APIs sind beliebte Architekturen für die Datenübertragung über das Web. RESTful-APIs verwenden normalerweise HTTP, wodurch sie für Fälle geeignet sind, in denen Zustandslosigkeit wichtig ist.





Wie jede serverseitige Sprache können Sie mit dem HTTP-Protokoll interagieren und HTTP-Anforderungen in Go stellen.





Erste Schritte mit der Verwendung von RESTful-APIs in Go

Das http Paket bietet die meisten Funktionen, die Sie für die Interaktion mit dem HTTP-Protokoll in Go benötigen. Dazu gehört das Stellen von HTTP-Anforderungen, und Sie müssen es nicht unbedingt externe Abhängigkeiten, wie Gin oder eine Datenbank .





MAKEUSEOF VIDEO DES TAGES

Du kannst den ... benutzen http Paket zum Verwenden von APIs und zum Abrufen von Seiten Web-Scraping in Go .

Importieren Sie diese Pakete, um HTTP-Anforderungen in Go zu erstellen.



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

Sie verwenden die Byte Paket zum Bearbeiten von Byte-Slices, dem json Paket zum Formatieren von Anforderungsdaten, das fmt Paket zum Schreiben auf die Standardausgabe, die ioutil Paket für Ein- und Ausgabe und das http Paket zum Senden von Anfragen.

wann wird tiktok in den usa verboten

Eine einfache GET-Anfrage in Go

Typisch ERHALTEN fordert Lesedaten von einem Server an und kann je nach Art und Spezifikation der API Parameter für die Daten bereitstellen.





In diesem Tutorial erfahren Sie, wie Sie RESTful-APIs mit dem einfachen Request-and-Response-Service von httpbin verwenden.

Hier ist ein Beispiel für eine HTTP-Anfrage mit 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] ...
}

Das URL Variable ist der Endpunkt, an den Sie die Anfrage senden. Das Erhalten -Methode übernimmt die URL, führt die aus Erhalten Anfrage und gibt die Antwort zurück, einschließlich Header und Body.

wie kann man alexa dazu bringen, youtube zu spielen?

Je nach Ihren Anforderungen können Sie Fehler aus der Anfrage behandeln. Wenn keine Fehler vorhanden sind, können Sie mit dem Extrahieren der benötigten Informationen aus der fortfahren Erhalten Anfrage.

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

Die Antworten Körper Das Feld enthält den Text der Antwort. Verwendung der Lese alles Methode der ioutil Paket können Sie den Antworttext lesen und mögliche Fehler behandeln.

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

Das anders -Anweisung gibt den Antworttext an Ihre Konsole aus, wenn beim Lesevorgang keine Fehler aufgetreten sind.

Hier ist das Ergebnis der ERHALTEN Anfrage an den Endpunkt von httpbin.

  Ergebnis der GET-Anfrage

Eine einfache POST-Anfrage in Go

Typische POST-Anforderungen liefern Datennutzlasten an den Server, und der Server gibt abhängig von der Operation eine Antwort zurück.

Hier ist eine einfache Struktur zum Codieren einer JSON-Nutzlast für den Server als Teil der POST-Anfrage.

type JSON struct { 
info string
message string
}

Das JSON struct hat die die Info und Botschaft Zeichenfolgenfelder, und Sie initialisieren eine Strukturinstanz für die Anforderung.

So bereinigen Sie Windows 10
url := "https://httpbin.org/post" 

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

Das URL -Variable speichert den Endpunkt der POST-Anforderung von der httpbin-Website. Das jsonInstance Variable ist eine Instanz der JSON-Struktur, die Sie verwenden können, um strukturierte Daten zu speichern und zu senden.

Du kannst den ... benutzen Marschall Methode aus der json -Paket, um JSON für die Anforderung zu formatieren.

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

Das Marschall -Methode gibt auch einen Fehler zurück, den Sie behandeln können. Wenn beim JSON-Marshalling-Vorgang keine Fehler auftreten, können Sie mit der POST-Anforderung fortfahren.

Du kannst den ... benutzen Post Methode, um POST-Anforderungen zu stellen. Das Post -Methode nimmt den URL-Endpunkt, den Inhaltstyp der Anfrage und einen Puffer der Nutzlast auf. Es gibt die Antwort und einen Fehler zurück.

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

Auch hier können Sie den Antworttext mit lesen Lese alles Methode der 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))
}
}

Das Druckln -Anweisung gibt das Ergebnis der HTTP-Anforderung an Ihre Konsole aus.

Als die httpbin-Dokumentation angibt, gibt dieser POST-Endpunkt die Anforderungsdaten zurück, die Sie ihm senden.

  Ergebnis der POST-Anforderung

Das Erstellen von Web-Apps in Go ist einfach

Sie können Webanwendungen mit verschiedenen Funktionen in Go ohne Abhängigkeiten erstellen.

Das http Paket enthält die Funktionen, die Sie für die meisten Ihrer Operationen benötigen. Sie können dieses Paket mit anderen wie dem verwenden json Paket für JSON-Operationen, das Kontext -Paket für die Signalisierung und das Vorlagenpaket für die Vorlagenerstellung. Es gibt viele andere Pakete in der Standardbibliothek.