gRPC service definitions

Hello,

I’m reading grpc overview and concept and just for my information what Service Method is used for lora-app-server Grpc API?

-Unary
-Server streaming
-Client streaming
-Bidirectional streaming

And what version of Protocol Buffers is used V2 or V3?

Thank you.

Please refer to the related .proto gRPC definitions: https://github.com/brocaar/lora-app-server/tree/master/api.

1 Like

Ok thank you for the reply,

If I well understood Protocol Buffers language version 3 (aka proto3) is used, I read for instance syntax = "proto3"; in application.proto.

Then regarding grpc service method I will say all methods are used in this API.

service ApplicationService{…} ==> Group all the services methods for the application side

For example:

rpc Create(CreateApplicationRequest) returns (CreateApplicationResponse) {
		option(google.api.http) = {
			post: "/api/applications"
			body: "*"
		};

CreateApplicationRequest and CreateApplicationResponse are two parameters defined below:

message CreateApplicationRequest {
	// Application object to create.
	Application application = 1;
}

message CreateApplicationResponse {
	// Application ID.
	int64 id = 1;
}

The first parameter is build with another message :

message Application {
	// Application ID.
	// This will be automatically assigned on create.
	int64 id = 1;

	// Name of the application (must be unique).
	string name = 2;

	// Description of the application.
	string description = 3;

	// ID of the organization to which the application belongs.
	int64 organization_id = 4 [json_name = "organizationID"];

	// ID of the service profile.
	string service_profile_id = 5 [json_name = "serviceProfileID"];

	// Payload codec.
	string payload_codec = 6;

	// Payload encoder script.
	string payload_encoder_script = 7;

	// Payload decoder script.
	string payload_decoder_script = 8;
}

In my point of view for this rpc service method we are closer of “Client streaming RPCs” but then we can also find different rpc method in Applicationservice{…} so to conclude there are all rpc service method represented in this api?

Thank you