Coder Social home page Coder Social logo

dashboard's Introduction

dashboard

This is an example project I put together to demonstrate the utility of some awesome services that exist within the gRPC ecosystem.

To Run Locally

make all

Presentation

Presentation Slides are Here

Swagger

http://localhost:8081/swaggerui/#/

Example gRPC requests

List out gRPC functions supported by a service:

$ grpcurl -plaintext localhost:50051 list jmartin127.traffic.v1.Traffic
jmartin127.traffic.v1.Traffic.GetTravelTime

Retrieve Travel Time:

$ grpcurl -d '{"originAddress": "my house", "destinationAddress": "Lehi"}' -plaintext localhost:50051 jmartin127.traffic.v1.Traffic/GetTravelTime
{
  "travelTime": "660s"
}

Retrieve Current Weather:

$ grpcurl -d '{"address": "lehi"}' -plaintext localhost:50052 jmartin127.weather.v1.Weather/GetCurrentWeather
{
  "tempFahrenheit": 39,
  "precipitationPct": 1,
  "humidityPct": 38,
  "windMPH": 5
}

References

gRPC Resources: https://github.com/grpc-ecosystem/awesome-grpc#documentation

Mapping of gRPC errors to HTTP status codes: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go

Official Website: https://grpc.io/

Helpful Quickstart: https://grpc.io/docs/languages/go/quickstart/

gRPCurl: https://github.com/fullstorydev/grpcurl

grpc-json-proxy: https://github.com/jnewmano/grpc-json-proxy

grpc-gateway GitHub: https://github.com/grpc-ecosystem/grpc-gateway

grpc-gateway Docs: https://grpc-ecosystem.github.io/grpc-gateway/

grpc google.api.http annotations: https://github.com/googleapis/googleapis/blob/master/google/api/http.proto#L46

all the crazy annotations: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/examples/internal/proto/examplepb/a_bit_of_everything.proto

Buff Style Guide: https://docs.buf.build/style-guide/#files-and-packages

Swagger UI: https://www.ribice.ba/serving-swaggerui-golang/

Swagger UI: https://github.com/swagger-api/swagger-ui

Validation (protoc-gen-validate): https://github.com/envoyproxy/protoc-gen-validate

TODO

  1. Finish the presentation
  2. Actually hook this up to Google APIs
  3. Dockerize protoc tools (protoc-gen-grpc-gateway, protoc-gen-openapiv2, protoc-gen-go, protoc-gen-go-grpc)

dashboard's People

Contributors

jmartin127 avatar jmartin-w avatar

Stargazers

tony loc avatar Rahul avatar  avatar  avatar Miriah Peterson avatar Syed Mujtaba avatar Daniel Wangai avatar  avatar

Watchers

 avatar

Forkers

rahulkp220

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.