In Google App Engine (GAE) ist es wichtig, den geeigneten Ansatz zum Erstellen von Firestore-Clients zu verstehen. Dieser Artikel befasst sich mit diesem Problem, indem er die kontextbasierte Client-Erstellung und die jüngsten Änderungen mit der Golang 1.11-Laufzeit in GAE untersucht.
Kontextbezogene Clients
GAE verwendet a kontextbezogener Ansatz, wobei der Schwerpunkt auf der Verwendung von context.Context aus http.Request liegt. Das bedeutet, dass jede Anfrage einen dedizierten Kontext haben sollte. Kontext, der von Client-Bibliotheken genutzt werden kann.
Vorherige Implementierung
In früheren Versionen von GAE wurde ein einzelner Firestore erstellt Client und die Verwendung über mehrere Anfragen hinweg war unpraktisch. Dies war auf Einschränkungen in der älteren Golang-Laufzeit im GAE-Standard zurückzuführen. Daher war es notwendig, für jede Anfrage einen neuen Firestore-Client zu erstellen.
Aktuelle Implementierung mit Golang 1.11 Runtime
Mit der Einführung der Golang 1.11 Runtime in GAE-Standard, dieses Szenario hat sich geändert. Entwickler können jetzt jeden gewünschten Kontext für die Initialisierung des Firestore-Clients auswählen. Dies bietet Flexibilität bei der Initialisierung des Clients in den Funktionen main() oder init() unter Verwendung des Hintergrundkontexts. Anschließend können API-Aufrufe innerhalb von Anforderungshandlern mithilfe des Anforderungskontexts durchgeführt werden.
Idiomatischer Ansatz
Der bevorzugte Ansatz in der aktuellen GAE-Landschaft ist die Wiederverwendung der Firestore-Client-Instanz für mehrere Aufrufe. Der folgende Codeausschnitt veranschaulicht diesen Ansatz:
package main import ( "context" firestore "cloud.google.com/go/firestore" ) var client *firestore.Client func init() { var err error client, err = firestore.NewClient(context.Background(), "my-project-id") // handle errors as needed } func handleRequest(w http.ResponseWriter, r *http.Request) { doc := client.Collection("cities").Doc("Mountain View") doc.Set(r.Context(), someData) // rest of the handler logic }
In diesem Beispiel wird der Client in der Funktion init() unter Verwendung des Hintergrundkontexts initialisiert. Anforderungshandler können dann r.Context() verwenden, um Firestore-API-Aufrufe durchzuführen.
Durch diesen Ansatz können Entwickler die Ressourcennutzung optimieren und ein konsistentes Verhalten bei allen GAE-Anfragen sicherstellen.
Das obige ist der detaillierte Inhalt vonWie soll ich Firestore-Clients in Google App Engine erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!