mirror of
				https://github.com/go-kratos/kratos.git
				synced 2025-10-30 23:47:59 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| 
 | |
| option go_package = "github.com/go-kratos/kratos/cmd/protoc-gen-go-http/internal/testproto;testproto";
 | |
| 
 | |
| package testproto;
 | |
| 
 | |
| import "google/api/annotations.proto";
 | |
| import "google/protobuf/field_mask.proto";
 | |
| import "google/protobuf/struct.proto";
 | |
| 
 | |
| enum Corpus {
 | |
|     UNIVERSAL = 0;
 | |
|     WEB = 1;
 | |
|     IMAGES = 2;
 | |
|     LOCAL = 3;
 | |
|     NEWS = 4;
 | |
|     PRODUCTS = 5;
 | |
|     VIDEO = 6;
 | |
| }
 | |
| 
 | |
| // Embedded represents a message embedded in SimpleMessage.
 | |
| message Embedded {
 | |
| 	oneof mark {
 | |
| 		int64 progress = 1;
 | |
| 		string note = 2;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // SimpleMessage represents a simple message sent to the Echo service.
 | |
| message SimpleMessage {
 | |
| 	// Id represents the message identifier.
 | |
| 	string id = 1;
 | |
| 	int64 num = 2;
 | |
| 	oneof code {
 | |
| 		int64 line_num = 3;
 | |
| 		string lang = 4;
 | |
| 	}
 | |
| 	Embedded status = 5;
 | |
| 	oneof ext {
 | |
| 		int64 en = 6;
 | |
| 		Embedded no = 7;
 | |
| 	}
 | |
|     Corpus corpus = 8;
 | |
| }
 | |
| 
 | |
| // DynamicMessage represents a message which can have its structure
 | |
| // built dynamically using Struct and Values.
 | |
| message DynamicMessage {
 | |
| 	google.protobuf.Struct struct_field = 1;
 | |
| 	google.protobuf.Value value_field = 2;
 | |
| }
 | |
| 
 | |
| message DynamicMessageUpdate {
 | |
| 	DynamicMessage body = 1;
 | |
| 	google.protobuf.FieldMask update_mask = 2;
 | |
| }
 | |
| 
 | |
| // Echo service responds to incoming echo requests.
 | |
| service EchoService {
 | |
| 	// Echo method receives a simple message and returns it.
 | |
| 	//
 | |
| 	// The message posted as the id parameter will also be
 | |
| 	// returned.
 | |
| 	rpc Echo(SimpleMessage) returns (SimpleMessage) {
 | |
| 		option (google.api.http) = {
 | |
| 			post: "/v1/example/echo/{id}"
 | |
| 			additional_bindings {
 | |
| 				get: "/v1/example/echo/{id}/{num}"
 | |
| 			}
 | |
| 			additional_bindings {
 | |
| 				get: "/v1/example/echo/{id}/{num}/{lang}"
 | |
| 			}
 | |
| 			additional_bindings {
 | |
| 				get: "/v1/example/echo1/{id}/{line_num}/{status.note}"
 | |
| 			}
 | |
| 			additional_bindings {
 | |
| 				get: "/v1/example/echo2/{no.note}"
 | |
| 			}
 | |
| 		};
 | |
| 	}
 | |
| 	// EchoBody method receives a simple message and returns it.
 | |
| 	rpc EchoBody(SimpleMessage) returns (SimpleMessage) {
 | |
| 		option (google.api.http) = {
 | |
| 			post: "/v1/example/echo_body"
 | |
| 			body: "*"
 | |
| 		};
 | |
| 	}
 | |
| 	// EchoDelete method receives a simple message and returns it.
 | |
| 	rpc EchoDelete(SimpleMessage) returns (SimpleMessage) {
 | |
| 		option (google.api.http) = {
 | |
| 			delete: "/v1/example/echo_delete"
 | |
| 		};
 | |
| 	}
 | |
| 	// EchoPatch method receives a NonStandardUpdateRequest and returns it.
 | |
| 	rpc EchoPatch(DynamicMessageUpdate) returns (DynamicMessageUpdate) {
 | |
| 		option (google.api.http) = {
 | |
| 			patch: "/v1/example/echo_patch"
 | |
| 			body: "body"
 | |
| 		};
 | |
| 	}
 | |
| }
 |