Files
services/location/proto/location.proto
2021-03-18 17:21:41 +00:00

56 lines
979 B
Protocol Buffer

syntax = "proto3";
option go_package = "./proto;location";
// The location service stores GPS points for tracking purposes
// and provides endpoints to query those points.
package location;
service Location {
// Read locations
rpc Read(ReadRequest) returns (ReadResponse) {}
// Save locations
rpc Save(SaveRequest) returns (SaveResponse) {}
rpc Search(SearchRequest) returns (SearchResponse) {}
}
// A point is a GPS coordinate.
message Point {
double latitude = 1;
double longitude = 2;
int64 timestamp = 3;
}
message Entity {
string id = 1;
string type = 2;
Point location = 3;
}
message ReadRequest {
string id = 1;
}
message ReadResponse {
Entity entity = 1;
}
message SaveRequest {
Entity entity = 1;
}
message SaveResponse {
}
message SearchRequest {
Point center = 1;
// in meters
double radius = 2;
string type = 3;
int64 numEntities = 4;
}
message SearchResponse {
repeated Entity entities = 1;
}