Retour

Microservice avec Go et gRPC

Tuto
15 mai 2018
13mn

Progression
4

Mise en place de la Translate API de Google

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

Articles sur le même thème

Construction d'une plateforme Data, retour d'expérience (REX)

Les besoins en analyse de données sont grandissants. Avec quelques outils, il est possible de faire des extractions, de la transformation et de la visualisation très rapidement. Cependant, pour assurer la pérénnité et l'évolutivité de ces analyses, il est nécessaire de monter une plateforme dédiée et d'industrialiser les différents processus. C'est le sujet de cet article.

14 nov. 202311mnThierry T.

Découvrez Eleven Labs

Notre site pour mieux nous connaître

J'y vais

Contact

Eleven Labs - Paris

102, rue du Faubourg Saint Honoré

75008 Paris

Eleven Labs - Nantes

42, rue la Tour d'Auvergne

44200 Nantes

Eleven Labs - Montréal

1155, Metcalfe St Suite 1500

Montréal, QC H3B 2V6, Canada

business@eleven-labs.com

01.82.83.11.75