Önce proto dosyaları hazırlanır. Daha sonra bu dosyalardan kod üretilir.
Üye alan tipi olarak int32, string, bool, bytes kullanılabilir. bytes byte[] anlamına gelir.
Örnek - Unary With Empty Return
Şöyle yaparız
rpc DeleteProduct(DeleteProductRequest) returns (google.protobuf.Empty);
Örnek - Unary
Şöyle yaparız
syntax = "proto3";service SampleDataService {rpc GetSampleData (Empty) returns (SampleData) {}}message SampleData {int32 id = 1;string name = 2;bool enjoys_coding = 3;}message Empty {}
Örnek - Unary
Şöyle yaparız
syntax = "proto3"option java_multiple_files = true;option java_package = "com.grpc.hello";option java_outer_classname = "HelloProto";service Hello {rpc SayHello (HelloRequest) returns (HelloReply)}message HelloRequest {string name = 1;}message HelloReply {string name = 1;}
Örnek - Tüm Kullanım Çeşitleri
Şöyle yaparız
syntax = "proto3";package calculator;option java_package = "com.vinsguru.calculator";option java_multiple_files = true;message Input {int32 number = 1;}message Output {int64 result = 1;}service CalculatorService {// unaryrpc findFactorial(Input) returns (Output) {};// server streamrpc getAllFactors(Input) returns (stream Output) {};// client streamrpc sumAll(stream Input) returns (Output) {};// bi-directional streamrpc findPrime(stream Input) returns (stream Output) {};}
Örnek - Unary + Bi-Directional Streaming
Şöyle yaparız.
- generateRandomUser servisi unary'dir.
- generateRandomUserStream servisi bi-directional'dır. Hem metod parametresinden hem de returns parametresinde stream kelimesi var.
syntax = "proto3";package model;import "google/protobuf/timestamp.proto";option java_package = "com.userdetails.model";option java_multiple_files = true;message UserDetailsRequest {string firstName = 1;string lastName = 2;string city = 3;}message UserDetailsResponse {string id = 1;int32 numericId = 2;string firstName = 3;string lastName = 4;string city = 5;}service UserDetailsService {rpc generateRandomUser(UserDetailsRequest) returns (UserDetailsResponse) {};rpc generateRandomUserStream(stream UserDetailsRequest) returns
(stream UserDetailsResponse) {};}
Hiç yorum yok:
Yorum Gönder