You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
É um protocolo de remote procedure call de alta performance e open source desenvolvido pelo Google.
Protocol Buffers
Formato de dados usado para serializar estrutura de dados; os dados trafegados via gRPC são nesse formato
HTTP/2
Versão mais recente do protocolo HTTP, que usa multiplexação(as requisições e respostas são paralelas e assíncronas), server push(estáticos, por exemplo), headers comprimidos e formatados em HPACK
Tipos de chamadas
- API unary: client -> request(1) -> data <- response(1) <- server
- API server streaming: client -> request(1) -> data <- response(N) <- server
- API client streaming: client -> request(N) -> data <- response(1) <- server
- API bi directional streaming: client -> request(N) -> data <- response(N) <- server
### 1. Crie uma [pasta com os arquivos proto para cada uma de suas entidades](proto/course_category.proto)### 2. Gere os binários via protoc
protoc --go_out=. --go-grpc_out=. proto/course_category.proto
### 3. Implemente os [services](internal/service/category.go) com base nas [interfaces auto-geradas pelo protoc](internal/pb/course_category_grpc.pb.go) 'not implemented'### 5. Suba o server
go run cmd/grpcServer/main.go
### 6. Use evans para chamar os services do app
evans --proto proto/course_category.proto --host localhost --port 50051
=> call CreateCategory
=> name1
=> desc1
Como rodar o projeto
### 1. Crie a tabela
sqlite3 db.sqlite 'create table categories (id string, name string, description string);'### 5. Suba o server
go run cmd/grpcServer/main.go
### 6. Use evans para chamar os services do app
evans --proto proto/course_category.proto --host localhost --port 50051
=> call CreateCategory
=> name1
=> desc1