Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/piyush1146115/go-microservice
A hands-on attempt to learn microservices using Golang.
https://github.com/piyush1146115/go-microservice
golang grpc microservices rest
Last synced: 4 months ago
JSON representation
A hands-on attempt to learn microservices using Golang.
- Host: GitHub
- URL: https://github.com/piyush1146115/go-microservice
- Owner: piyush1146115
- License: mit
- Created: 2022-09-06T10:12:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-07T19:06:40.000Z (almost 2 years ago)
- Last Synced: 2024-09-26T03:33:28.361Z (5 months ago)
- Topics: golang, grpc, microservices, rest
- Language: Go
- Homepage:
- Size: 6.67 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-microservice
A hands-on attempt to learn microservices using Golang.### Acknowledgement:
This project followed Nic Jackson's `Building Microservice with Go` tutorial series.- [Nic Jackson's Youtube Playlist](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_)
- [Nic Jackson's Github Repo](https://github.com/nicholasjackson/building-microservices-youtube)## Services
This project consists of the following different services:### Product API [./product-api](./product-api)
Simple Go based JSON API built using the Gorilla framework. The API allows CRUD based operations on a product list.### Frontend website [./frontend](./frontend)
ReactJS website for presenting the Product API information### Product-images [./product-images](./product-images)
Simple Go based file service that can download and upload data and use `gzip` for file compression### Currency [./currency](./currency)
gRPC and Go based RPC service to get updated rates of different currencies from European central bank.## Resources:
- [Rest API Best Practices](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)
- [Go JSON encoding](https://pkg.go.dev/encoding/json)
- [Go regexp package](https://pkg.go.dev/regexp)
- [Testify framework](https://github.com/stretchr/testify)
- [Gorilla framework](https://www.gorillatoolkit.org/)
- [OWASP Top 10](https://www.cloudflare.com/learning/security/threats/owasp-top-10/)
- [Redoc](https://github.com/Redocly/redoc)
- [Runtime Middleware](https://github.com/go-openapi/runtime/tree/master/middleware)
- [Go-swagger](https://github.com/go-swagger/go-swagger)
- [Accept-encoding](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding)
- [Go http responsewriter](https://pkg.go.dev/net/http#ResponseWriter)
- [protobuf](https://developers.google.com/protocol-buffers/docs/proto3)
- [protobuf-encoding](https://developers.google.com/protocol-buffers/docs/encoding)
- [grpc](https://grpc.io/)
- [grpcurl](https://github.com/fullstorydev/grpcurl)
- [grpc server-side streaming](https://grpc.io/docs/languages/go/basics/#server-side-streaming-rpc)
- [grpc client-side streaming](https://grpc.io/docs/languages/go/basics/#client-side-streaming-rpc)
- [grpc error handling](https://grpc.io/docs/guides/error/)