yokai-grpc-template

command module
v0.0.0-...-036e830 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2024 License: MIT Imports: 1 Imported by: 0

README

Yokai gRPC Template

Go version

gRPC application template based on the Yokai Go framework.

Documentation

For more information about the Yokai framework, you can check its documentation.

Overview

This template provides:

Layout

This template is following the recommended project layout:

  • cmd/: entry points
  • configs/: configuration files
  • internal/:
    • service/: gRPC service and test examples
    • bootstrap.go: bootstrap
    • register.go: dependencies registration
  • proto/: protobuf definition and stubs
Makefile

This template provides a Makefile:

make up      # start the docker compose stack
make down    # stop the docker compose stack
make logs    # stream the docker compose stack logs
make fresh   # refresh the docker compose stack
make stubs   # generate gRPC stubs with protoc (ex: make stubs from=proto/example.proto)
make test    # run tests
make lint    # run linter

Getting started

Installation
With GitHub

You can create your repository using the GitHub template.

It will automatically rename your project resources and push them, this operation can take a few minutes.

Once ready, after cloning and going into your repository, simply run:

make fresh
With gonew

You can install gonew, and simply run:

gonew github.com/ankorstore/yokai-grpc-template github.com/foo/bar
cd bar
make fresh
Usage

Once ready, the application will be available on:

  • localhost:50051 for the application gRPC server
  • http://localhost:8081 for the application core dashboard

If you update the proto definition, you can run make stubs from=proto/example.proto to regenerate the stubs.

Usage examples with gRPCurl:

  • with ExampleService/ExampleUnary:
grpcurl -plaintext -d '{"text":"hello"}' localhost:50051 example.ExampleService/ExampleUnary
{
  "text": "response from grpc-app: you sent hello"
}
  • with ExampleService/ExampleStreaming:
grpcurl -plaintext -d '@' localhost:50051 example.ExampleService/ExampleStreaming <<EOF
{"text":"hello"}
{"text":"world"}
EOF
{
  "text": "response from grpc-app: you sent hello"
}
{
  "text": "response from grpc-app: you sent world"
}

You can use any gRPC clients, for example Postman or Evans.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL