Microservice avec Go et gRPC

Microservice avec Go et gRPC


Nous allons maintenant mettre en place l'API Translate de Google.

Commencez par récupérer une clé API pour Translate. Il suffit de vous inscrire et de profiter de l'offre gratuite de Google Cloud Platform.

Nous allons créer un package translate qui va utiliser l'API de Google.

// translate.go package translate import ( "context" "log" "cloud.google.com/go/translate" "golang.org/x/text/language" "google.golang.org/api/option" ) type Translator interface { Translate(targetLanguage string, text string) (string, error) } type GoogleTranslator struct { client *translate.Client } func NewGoogleTranslator(apiKey string) *GoogleTranslator { ctx := context.Background() client, err := translate.NewClient(ctx, option.WithAPIKey(apiKey)) if err != nil { log.Fatal(err) } return &GoogleTranslator{ client: client, } } func (t GoogleTranslator) Translate(targetLanguage string, text string) (string, error) { ctx := context.Background() lang, err := language.Parse(targetLanguage) if err != nil { return "", err } res, err := t.client.Translate(ctx, []string{text}, lang, nil) if err != nil { return "", err } return res[0].Text, nil }

Lancez la commande dep ensure pour installer les packages qui vous manquent.

Nous allons modifier la factory de TranslateEndpoint.

// endpoint.go func NewTranslateEndpoint(t translate.Translator) TranslateEndpoint { return func(ctx context.Context, req *proto.TranslateRequest) (*proto.TranslateResponse, error) { text, err := t.Translate(req.Language.String(), req.Text) if err != nil { return nil, err } return proto.TranslateResponse{Text: text}, nil } }

Nous pouvons maintenant modifier le main.go pour ajouter le service à l'endpoint.

// main.go // ... translator := translate.NewGoogleTranslator(os.Getenv("TRANSLATION_API_KEY")) srv := server.NewTranslatorServer(server.Endpoints{ TranslateEndpoint: server.NewTranslateEndpoint(translator), }) // ...

Nous pouvons maintenant compiler notre serveur.

TRANSLATION_API_KEY=yourapitoken go run main.go

Auteur(s)

Quentin Neyrat

Quentin Neyrat

Back-end developer @ Eleven Labs

Voir le profil

Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !

Notre équipe d'experts répond à toutes vos questions.

Nous contacter

Découvrez nos autres contenus dans le même thème

Delta Lake avec Apache Spark

Delta Lake avec Apache Spark

Il existe différent format de fichier pour stocker la donnée : parquet, avro, csv. Connaissez-vous le format Delta Lake ? Découvrons les fonctionnalités de ce format.

Comment tester son script Apache Spark avec Pytest ?

Tester son script Apache Spark avec pytest

Dans le domaine de la data, la qualité de la donnée est primordiale. Pour s'en assurer, plusieurs moyens existent, et nous allons nous attarder dans cet article sur l'un d'entre eux : tester unitairement avec Pytest.

Un long couloir fait à partir de données

Démarrer avec Apache Spark étape par étape

Le domaine de la data est présent dans le quotidien de chacun : la majorité de nos actions peut être traduite en données. Le volume croissant de ces données exploitables a un nom : "Big Data". Dans cet article, nous verrons comment exploiter ce "Big data" à l'aide du framework Apache Spark.