Nous allons commencer par tester notre service avec prototool.
Prototool va permettre de transformer un json en protobuf et d'appeler le serveur gRPC.
Nous allons créer un fichier payload.json.
{
    "text": "Salut les astronautes !",
    "language": "en"
}
Nous allons maintenant appeler notre serveur gRPC.
cat payload.json | prototool grpc proto/translator.proto 0.0.0.0:4000 proto.Translator/Translate -
gRPC client avec Go
Nous allons créer un simple fichier client.go pour appeler le serveur gRPC avec le code qui a été généré.
// client.go
package main
import (
    "context"
    "log"
    "google.golang.org/grpc"
    "translator-service/proto"
)
func main() {
    conn, err := grpc.Dial("localhost:4000", grpc.WithInsecure())
    if err != nil {
        log.Fatalln(err)
    }
    defer conn.Close()
    client := proto.NewTranslatorClient(conn)
    res, err := client.Translate(
        context.Background(),
        &proto.TranslateRequest{Text:"Salut les astronautes !", Language: proto.Language_en},
    )
    if err != nil {
        log.Fatalln(err)
    }
    log.Println(res.Text)
}
Nous allons maintenant appeler notre serveur gRPC avec notre client en Go.
go run client.go