74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| 
 | |
| package go.micro.registry;
 | |
| 
 | |
| service Registry {
 | |
| 	rpc GetService(GetRequest) returns (GetResponse) {};
 | |
| 	rpc Register(Service) returns (EmptyResponse) {};
 | |
| 	rpc Deregister(Service) returns (EmptyResponse) {};
 | |
| 	rpc ListServices(ListRequest) returns (ListResponse) {};
 | |
| 	rpc Watch(WatchRequest) returns (stream Result) {};
 | |
| }
 | |
| 
 | |
| // Service represents a go-micro service
 | |
| message Service {
 | |
| 	string name = 1;
 | |
| 	string version = 2;
 | |
| 	map<string,string> metadata = 3;
 | |
| 	repeated Endpoint endpoints = 4;
 | |
| 	repeated Node nodes = 5;
 | |
| }
 | |
| 
 | |
| // Node represents the node the service is on
 | |
| message Node {
 | |
| 	string id = 1;
 | |
| 	string address = 2;
 | |
| 	int64 port = 3;
 | |
| 	map<string,string> metadata = 4;
 | |
| }
 | |
| 
 | |
| // Endpoint is a endpoint provided by a service
 | |
| message Endpoint {
 | |
| 	string name = 1;
 | |
| 	Value request = 2;
 | |
| 	Value response = 3;
 | |
| 	map<string, string> metadata = 4;
 | |
| }
 | |
| 
 | |
| // Value is an opaque value for a request or response
 | |
| message Value {
 | |
| 	string name = 1;
 | |
| 	string type = 2;
 | |
| 	repeated Value values = 3;
 | |
| }
 | |
| 
 | |
| // Result is returns by the watcher
 | |
| message Result {
 | |
| 	string action = 1; // create, update, delete
 | |
| 	Service service = 2;
 | |
| 	int64 timestamp = 3; // unix timestamp
 | |
| }
 | |
| 
 | |
| message EmptyResponse {}
 | |
| 
 | |
| message GetRequest {
 | |
| 	string service = 1;
 | |
| }
 | |
| 
 | |
| message GetResponse {
 | |
| 	repeated Service services = 1;
 | |
| }
 | |
| 
 | |
| message ListRequest {
 | |
| 	// TODO: filtering
 | |
| }
 | |
| 
 | |
| message ListResponse {
 | |
| 	repeated Service services = 1;
 | |
| }
 | |
| 
 | |
| message WatchRequest {
 | |
| 	// service is optional
 | |
| 	string service = 1;
 | |
| }
 |