Retour

Microservice avec Go et gRPC

Tuto
15 mai 2018
13mn

Notre fichier Protobuf

Nous allons créer un fichier translator.proto dans le dossier proto.

syntax = "proto3"; package proto;

Nous allons déclarer dans ce fichier un service gRPC. La méthode Translate aura comme payload TranslateRequest et retournera TranslateResponse.

service Translator { rpc Translate(TranslateRequest) returns (TranslateResponse) {} }

Nous allons maintenant déclarer les messages TranslateRequest et TranslateResponse.

message TranslateRequest { string text = 1; Language language = 2; } message TranslateResponse { string text = 1; }

Petite subtilité ici, les chaînes de caractères ne sont pas compressées avec protobuf. Afin d'optimiser les traitements, on déclare pour language que les valeurs possibles sont en et fr. Pour ce faire on déclare une enum Language.

enum Language { en = 0; fr = 1; }

Notre fichier Protobuf est terminé et devrait ressembler à ça :

syntax = "proto3"; package proto; enum Language { en = 0; fr = 1; } message TranslateRequest { string text = 1; Language language = 2; } message TranslateResponse { string text = 1; } service Translator { rpc Translate(TranslateRequest) returns (TranslateResponse) {} }

Génération avec Prototool

Nous allons commencer par générer le fichier de config de Prototool.

prototool init

Nous allons maintenant éditer la config pour qu'il génère notre service gRPC en Go.

gen: go_options: import_path: translator-service/ plugins: - name: go type: go flags: plugins=grpc output: .

Nous pouvons maintenant générer les fichiers Go.

prototool gen

Dans le dossier proto , nous avons maintenant un fichier translator.pb.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