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.

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.

importieren (
"Bytes"
"Codierung/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

instagram viewer
ioutil Paket für Ein- und Ausgabe und das http Paket zum Senden von Anfragen.

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"
Antwort, ähm := http. Abrufen (URL)

wenn äh != Null {
fmt. Printf("Fehler bei der API-Anfrage %s", err. Fehler())
} anders {
// fährt fort [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.

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.

} anders {
//... [1] fortgesetzt
Antwortdaten, err := ioutil. ReadAll (Antwort. Körper)

wenn äh != Null {
fmt. Printf("Beim Analysieren des Anforderungstexts %s ist ein Fehler aufgetreten", err. Fehler())
} anders {
// fährt fort [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.

} anders {
//... [2] fortgesetzt
fmt. Println(Schnur(Antwortdaten))
}

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.

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.

Typ JSON Struktur {
die Info Schnur
Botschaft Schnur
}

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

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

jsonInstance := JSON {
info: "erwartung auf erfolg",
Nachricht: "Die Anfrage sollte Rückkehr ",
}

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. Marshall (jsonInstance)
wenn äh != Null {
fmt. Println("Fehler beim JSON", err. Fehler())
} anders {
// fährt fort [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.

} anders {
//... Fortsetzung [1]
Antwort, ähm := http. Post (url, "application/json", bytes. NewBuffer (jsonData))

wenn äh != Null {
fmt. Println("Bei der Anfrage ist ein Fehler aufgetreten", err. Fehler())
} anders {
// fährt fort [2] ...
}
}

Auch hier können Sie den Antworttext mit lesen Lese alles Methode der ioutil Paket:

} anders {
//... Fortsetzung [2]
Daten, Fehler := ioutil. ReadAll (Antwort. Körper)

wenn äh != Null {
fmt. Println("Fehler beim Lesen des Anforderungstextes", err. Fehler())
} anders {
fmt. Println(Schnur(Daten))
}
}

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.

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.