Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/d-alejandro/grpc

Go, gRPC, Golang 1.22, Protobuf, Client, Server, OOP, Makefile
https://github.com/d-alejandro/grpc

client go golang grpc makefile oop protobuf protocol-buffers server

Last synced: about 1 month ago
JSON representation

Go, gRPC, Golang 1.22, Protobuf, Client, Server, OOP, Makefile

Awesome Lists containing this project

README

        

## gRPC Example

Server Address: `grpc://127.0.0.1:50051`

### RPC methods

- `GetOrder`
- `GetOrders`

### Defining the gRPC service

Full Protobuf file in `pkg/proto/service/order/v1/order.proto`

```protobuf
syntax = "proto3";

service OrderService {
rpc GetOrder (OrderRequest) returns (OrderResponse);
rpc GetOrders (Empty) returns (OrdersResponse);
}

message OrderRequest {
int64 order_id = 1;
}

message OrderResponse {
Order order = 1;
}

message Order {
int64 order_id = 1;
string user_name = 2;
string email = 3;
}

message Empty {}

message OrdersResponse {
repeated Order orders = 1;
}
```

### GetOrder response

Status code: `0 OK`

```json
{
"order": {
"order_id": 3,
"user_name": "TestUserName3",
"email": "[email protected]"
}
}
```

### GetOrders response

Status code: `0 OK`

```json
{
"orders": [
{
"order_id": 3,
"user_name": "TestUserName3",
"email": "[email protected]"
},
{
"order_id": 2,
"user_name": "TestUserName2",
"email": "[email protected]"
},
{
"order_id": 1,
"user_name": "TestUserName1",
"email": "[email protected]"
}
]
}
```