Dans Google App Engine (GAE), il est crucial de comprendre l'approche appropriée pour créer des clients Firestore. Cet article répond à cette préoccupation en examinant la création de clients basés sur le contexte et les modifications récentes apportées au runtime Golang 1.11 dans GAE.
Clients contextuels
GAE utilise un approche contextuelle, mettant l'accent sur l'utilisation de context.Context à partir de http.Request. Cela signifie que chaque requête doit avoir un contexte dédié. Contexte qui peut être exploité par les bibliothèques clientes.
Implémentation précédente
Dans les versions antérieures de GAE, création d'un seul Firestore client et son utilisation sur plusieurs requêtes n’était pas pratique. Cela était dû aux limitations de l'ancien moteur d'exécution Golang dans la norme GAE. En conséquence, il était nécessaire de créer un nouveau client Firestore pour chaque requête.
Implémentation actuelle avec le runtime Golang 1.11
Avec l'introduction du runtime Golang 1.11 dans Norme GAE, ce scénario a changé. Les développeurs peuvent désormais choisir le contexte de leur choix pour l'initialisation du client Firestore. Cela offre une flexibilité dans l'initialisation du client dans les fonctions main() ou init(), en utilisant le contexte d'arrière-plan. Par la suite, des appels d'API peuvent être effectués au sein des gestionnaires de requêtes en utilisant le contexte de requête.
Approche idiomatique
L'approche privilégiée dans le paysage GAE actuel consiste à réutiliser l'instance client Firestore pour plusieurs appels. L'extrait de code suivant illustre cette approche :
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 }
Dans cet exemple, le client est initialisé dans la fonction init() à l'aide du contexte d'arrière-plan. Les gestionnaires de requêtes peuvent ensuite utiliser r.Context() pour effectuer des appels d'API Firestore.
En adoptant cette approche, les développeurs peuvent optimiser l'utilisation des ressources et garantir un comportement cohérent dans les requêtes GAE.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!