Golang Server gRPC CRUD App
Basic Go Client/Server CRUD app using gRPC.
- gRPC
- Protobuf Format and Protoc
- SQLite
Runtime environment variables that need to be in your Shell.
Parameter | Example | Description |
---|---|---|
GOPATH | $HOME/$USER/go | |
GOROOT | /usr/local/go | |
GOBIN | $HOME/$USER/go/bin |
- Place the binary somewhere in your
$PATH
$ which protoc
/usr/local/bin/protoc
$ ./hack/proto-gen.sh
./pkg
|── api
└── v1
└── bookmark-service.pb.go
- Build the server
% pushd cmd/server && go build && popd
- Run the server
% ./cmd/server/server --grpc-port 55521
- Add Bookmark
% grpcurl -d '{"api" : "v1", "bookmark" : {"url" : "aaqa.dev"} }' -plaintext localhost:55521 v1.BookmarkService/CreateBookmark
- List Bookmarks
% grpcurl -plaintext localhost:55521 v1.BookmarkService/ListBookmarks
.
├── README.md
├── api
│ └── proto
│ └── v1
│ └── bookmark-service.proto - V1 Proto Description
├── cmd
│ └── server
│ └── main.go - Server entrypoint
├── go.mod
├── go.sum
├── hack
│ └── proto-gen.sh
└── pkg
├── api
│ └── v1
│ ├── bookmark-service.pb.go - Compiled Protobuf TodoService Package (Autogenerated by protoc-gen-go)
│ └── bookmark-service_grpc.pb.go
├── logger
│ └── log.go
└── service
└── v1
└── bookmark-service.go - CRUD functionality using compiled protobuf API and PB definitions
- CLI Client.
- Add Remaining methods for CRUD ops.
- Add REST Server and Swagger Files.