Maison > développement back-end > Golang > le corps du texte

Comment dois-je créer des clients Firestore dans Google App Engine ?

Barbara Streisand
Libérer: 2024-11-20 03:44:02
original
565 Les gens l'ont consulté

How Should I Create Firestore Clients in Google App Engine?

Création de clients Firestore dans Google App Engine

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal