Git Product home page Git Product logo

alifpramanarasa / go-grpc-starter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rifqiakrm/go-grpc-starter

0.0 0.0 0.0 133 KB

GRPC Golang Starter is a GRPC microservice built with Golang, monorepo style, SOLID principle and gherkin for e2e testing, it is easy to use and easy to maintain.

Shell 1.58% C++ 2.70% Go 89.24% Makefile 1.90% PLpgSQL 1.15% Dockerfile 0.46% Gherkin 1.76% Starlark 1.20%

go-grpc-starter's Introduction

GRPC Golang Starter API

Description

GRPC Golang Starter API is a GRPC microservice that provides a simple and secure way to access GRPC Starter. Build with monorepo, it is easy to use and easy to maintain.

It comes pre-configured with :

  1. Google Cloud Error Reporting (https://cloud.google.com/go/errorreporting)
  2. Google Cloud Profiler (https://cloud.google.com/go/profiler)
  3. Google Pub Sub(https://cloud.google.com/go/pubsub)
  4. JWT GO (https://github.com/dgrijalva/jwt-go)
  5. Go Mock (https://github.com/golang/mock)
  6. Redis (https://github.com/gomodule/redigo)
  7. Google UUID (https://github.com/google/uuid)
  8. GRPC (https://google.golang.org/grpc)
  9. GRPC Gateway(https://github.com/grpc-ecosystem/grpc-gateway/v2)
  10. GRPC OpenTracing (https://github.com/grpc-ecosystem/grpc-opentracing)
  11. GRPC Middleware (https://github.com/grpc-ecosystem/go-grpc-middleware)
  12. Protocol Buffers (https://google.golang.org/protobuf)
  13. Protoc Gen Validate (https://github.com/envoyproxy/protoc-gen-validate)
  14. Prometheus (https://github.com/grpc-ecosystem/go-grpc-prometheus)
  15. GORM (https://gorm.io/gorm)
  16. PGX Postgres (https://github.com/jackc/pgx/v4)
  17. ENV Decode(https://github.com/joeshaw/envdecode)
  18. Godotenv (https://github.com/joho/godotenv)
  19. Mailgun (https://github.com/mailgun/mailgun-go/v4)
  20. Sendgrid (https://github.com/sendgrid/sendgrid-go)
  21. Testify (https://github.com/stretchr/testify)

Setup

Use this command to install the blueprint

go get github.com/rifqiakrm/grpc-starter

or manually clone the repo.

How to Run

Development Guide

Test

Unit Test

$ make tidy
$ make cover

Integration Test / API Test

Before you start creating gherkin scenarios, you need to install godog and read the step definition documentation here.

To run integration test, we need to start all dependencies needed. We provide all dependencies via Docker Make sure to install Docker before running integration test.

Also, we need to build the docker image for grpc-starter first.

$ make compile-server
$ make docker-build-server

After that, run all images needed using docker-compose and run the integration test.

$ docker run -d -p 8080:8080 -p 8081:8081 --env-file .env grpc-starter-server:latest 
$ make test.integration

Deployment

Read Deployment.

Staging

TBD

Production

TBD

Postman Collection

Staging

TBD

Production

TBD

FAQs

go-grpc-starter's People

Contributors

rifqiakrm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.