26. @aiborisov
@HalloGene_
API DEFINITIONS
syntax = "proto3";
service FixtureService {
// Return next line of geese and clouds
rpc GetFixture (GetFixtureRequest) returns (FixtureResponse);
}
service LeaderboardService {
// Returns current top scores
rpc GetTopScores (TopScoresRequest) returns (TopScoresResponse);
// Updates a single player's score
rpc UpdateScore (UpdateScoreRequest) returns (UpdateScoreResponse);
}
27. @aiborisov
@HalloGene_
API DEFINITIONS
syntax = "proto3";
service FixtureService {
// Return next line of geese and clouds
rpc GetFixture (GetFixtureRequest) returns (FixtureResponse);
}
service LeaderboardService {
// Returns current top scores
rpc GetTopScores (TopScoresRequest) returns (TopScoresResponse);
// Updates a single player's score
rpc UpdateScore (UpdateScoreRequest) returns (UpdateScoreResponse);
}
28. @aiborisov
@HalloGene_
API DEFINITIONS
syntax = "proto3";
service FixtureService {
// Return next line of geese and clouds
rpc GetFixture (GetFixtureRequest) returns (FixtureResponse);
}
service LeaderboardService {
// Returns current top scores
rpc GetTopScores (TopScoresRequest) returns (TopScoresResponse);
// Updates a single player's score
rpc UpdateScore (UpdateScoreRequest) returns (UpdateScoreResponse);
}
67. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
syntax = "proto3";
service ServerReflection {
rpc ListApis (ListApisRequest) returns (ListApisResponse);
rpc GetMethod (GetMethodRequest)
returns (GetMethodResponse);
}
68. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
val grpcServer = ServerBuilder.forPort(SERVER_PORT)
.addService(fixtureService)
.addService(leaderboardService)
.addService(ProtoReflectionService.newInstance())
.build();
69. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
val grpcServer = ServerBuilder.forPort(SERVER_PORT)
.addService(fixtureService)
.addService(leaderboardService)
.addService(ProtoReflectionService.newInstance())
.build();
70. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
$ grpcurl -plaintext $GATEWAY:8080 list
game.FixtureService
game.LeaderboardService
grpc.reflection.v1alpha.ServerReflection
71. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
$ grpcurl -plaintext $GATEWAY:8080 describe
game.FixtureService
game.FixtureService is a service:
service FixtureService {
rpc GetFixture ( .game.GetFixtureRequest )
returns ( .game.FixtureResponse );
}
72. @aiborisov
@HalloGene_
UNCOVER THE TRUTH: SERVER REFLECTION API
$ grpcurl -plaintext $GATEWAY:8080 describe
game.FixtureResponse
game.FixtureResponse is a message:
message FixtureResponse {
repeated .game.FixtureLine lines = 1;
}