Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tpps88206/michael-angular-go-grpc-example

The example of gRPC project with Angular and Go
https://github.com/tpps88206/michael-angular-go-grpc-example

angular angular2 angular4 angular5 angular6 angular7 angular8 envoy envoy-proxy envoyproxy go golang grpc grpc-web protocol-buffers proxy

Last synced: 2 months ago
JSON representation

The example of gRPC project with Angular and Go

Awesome Lists containing this project

README

        

# angular-go-grpc-example

The example of gRPC project with Angular and Go.

![Structure](structure.png)

## Status

[![Build Status](https://travis-ci.org/tpps88206/angular-go-grpc-example.svg?branch=master)](https://travis-ci.org/tpps88206/angular-go-grpc-example)

Platform|Image size|Image version
---|---|---
Client|[![](https://images.microbadger.com/badges/image/tpps88206/angular-go-grpc-example-client.svg)](https://microbadger.com/images/tpps88206/angular-go-grpc-example-client)|[![](https://images.microbadger.com/badges/version/tpps88206/angular-go-grpc-example-client.svg)](https://microbadger.com/images/tpps88206/angular-go-grpc-example-client)
Server|[![](https://images.microbadger.com/badges/image/tpps88206/angular-go-grpc-example-server.svg)](https://microbadger.com/images/tpps88206/angular-go-grpc-example-server)|[![](https://images.microbadger.com/badges/version/tpps88206/angular-go-grpc-example-server.svg)](https://microbadger.com/images/tpps88206/angular-go-grpc-example-server)

## Development using

* Angular 8.0.0
* Go 1.12
* Protocol Buffers 3.7.1

## Installation

Use Docker Compose to build client, server and proxy together.

docker-compose build

## Usage

Run client, server and proxy together.

docker-compose up

## Access path

Client site with Angular:

http://localhost:80/

Server site with Go:

http://localhost:50051/

Access the Envoy Proxy at:

http://localhost:8080/

## Protocol Buffers

If you need to modify .proto files, you can go to `./proto` and then you will need to compile them again.

cd proto
vim calc.proto

# After modify
cd ..
sh ./protoc.sh

## Client development mode

The Docker Image will build client with production mode. If you need to use development mode.

cd ./client
npm start

And the client access path is

http://localhost:4200/

## Testing endpoints

If you want to try your server endpoint without client and proxy.

cd ./server/test
go run main.go

## Reference

* https://github.com/kmturley/angular-nest-grpc
* https://github.com/easyCZ/grpc-web-hacker-news
* https://github.com/improbable-eng/grpc-web
* https://github.com/protocolbuffers/protobuf
* https://github.com/envoyproxy/envoy
* https://github.com/appleboy/docker-multi-stage-build
* https://grpc.io/blog/state-of-grpc-web/
* https://blog.envoyproxy.io/envoy-and-grpc-web-a-fresh-new-alternative-to-rest-6504ce7eb880
* http://www.servicemesher.com/envoy/start/sandboxes/grpc_bridge.html