This repo is created for demonstrating basic usage of evans on the blog post.
Blog Post : https://mrturkmen.com/gRPC-calls-with-evans/
Evans: https://github.com/ktr0731/evans
// it is important to declare syntax version
syntax = "proto3";
service BookShelf {
rpc AddBook(AddBookRequest) returns (AddBookResponse) {}
rpc ListBook (ListBooksRequest) returns (ListBooksResponse) {}
rpc DelBook (DelBookRequest) returns (DelBookResponse){}
rpc FindBook (FindBookRequest) returns (FindBookResponse){}
}
message AddBookRequest {
string addedBy = 1;
BookInfo book = 2;
message BookInfo {
string isbn =1;
string name =2;
string author=3;
string addedBy=4;
}
}
message AddBookResponse {
string message = 1;
}
message ListBooksRequest {
// no need to have anything
// could be extended to list books based on category ...
}
message ListBooksResponse {
repeated BookInfo books =1;
message BookInfo {
string isbn =1;
string name =2;
string author=3;
string addedBy=4;
}
}
message DelBookRequest {
string isbn =1;
}
message DelBookResponse {
string message =1;
}
message FindBookRequest {
string isbn =1;
}
message FindBookResponse {
Book book = 1;
message Book {
string isbn =1;
string name =2;
string author=3;
string addedBy=4;
}
}
$ protoc -I proto/ proto/bs.proto --go_out=plugins=grpc:proto
$ go run server/main.go