...
1syntax = "proto3";
2option go_package = "examplepb";
3package grpc.gateway.examples.internal.examplepb;
4
5import "google/api/annotations.proto";
6
7message EmptyProto {}
8
9message NonEmptyProto {
10 string a = 1;
11 string b = 2;
12 string c = 3;
13}
14
15message UnaryProto {
16 string str = 1;
17}
18
19message NestedProto {
20 UnaryProto a = 1;
21 string b = 2;
22 string c = 3;
23}
24
25message SingleNestedProto {
26 UnaryProto a = 1;
27}
28
29service FlowCombination {
30 rpc RpcEmptyRpc(EmptyProto) returns (EmptyProto) {
31 option (google.api.http) = {
32 post: "/rpc/empty/rpc"
33 };
34 }
35 rpc RpcEmptyStream(EmptyProto) returns (stream EmptyProto) {
36 option (google.api.http) = {
37 post: "/rpc/empty/stream"
38 };
39 }
40 rpc StreamEmptyRpc(stream EmptyProto) returns (EmptyProto) {
41 option (google.api.http) = {
42 post: "/stream/empty/rpc"
43 };
44 }
45 rpc StreamEmptyStream(stream EmptyProto) returns (stream EmptyProto) {
46 option (google.api.http) = {
47 post: "/stream/empty/stream"
48 };
49 }
50
51 rpc RpcBodyRpc(NonEmptyProto) returns (EmptyProto) {
52 option (google.api.http) = {
53 // w/ body; w/o path; w/o query
54 post: "/rpc/body/rpc"
55 body: "*"
56
57 // w/o body; w/ path; w/o query
58 additional_bindings {
59 post: "/rpc/path/{a}/{b}/{c}/rpc"
60 }
61 // w/o body; w/o path; w/ query
62 additional_bindings {
63 post: "/rpc/query/rpc"
64 }
65 // w/ body; w/ path; w/o query
66 additional_bindings {
67 post: "/rpc/body/path/{a}/{b}/rpc"
68 body: "c"
69 }
70 // w/ body; w/o path; w/ query
71 additional_bindings {
72 post: "/rpc/body/query/rpc"
73 body: "c"
74 }
75 // w/ body; w/ path; w/ query
76 additional_bindings {
77 post: "/rpc/body/path/{a}/query/rpc"
78 body: "c"
79 }
80 // w/o body; w/ path; w/ query
81 additional_bindings {
82 post: "/rpc/path/{a}/query/rpc"
83 }
84 };
85 }
86 rpc RpcPathSingleNestedRpc(SingleNestedProto) returns (EmptyProto) {
87 option (google.api.http) = {
88 // w/o body; w/ path (IsNestedProto3); w/o query
89 post: "/rpc/path-nested/{a.str}/rpc"
90 };
91 }
92 rpc RpcPathNestedRpc(NestedProto) returns (EmptyProto) {
93 option (google.api.http) = {
94 // w/ body; w/ path (IsNestedProto3); w/o query
95 post: "/rpc/path-nested/{a.str}/{b}/rpc"
96 body: "c"
97
98 // w/o body; w/ path (IsNestedProto3); w/ query
99 additional_bindings {
100 post: "/rpc/path-nested/{a.str}/rpc"
101 }
102 // w/ body; w/ path (IsNestedProto3); w/ query
103 additional_bindings {
104 post: "/rpc/path-nested/{a.str}/rpc"
105 body: "c"
106 }
107 };
108 }
109
110 rpc RpcBodyStream(NonEmptyProto) returns (stream EmptyProto) {
111 option (google.api.http) = {
112 // w/ body; w/o path; w/o query
113 post: "/rpc/body/stream"
114 body: "*"
115
116 // w/o body; w/ path; w/o query
117 additional_bindings {
118 post: "/rpc/path/{a}/{b}/{c}/stream"
119 }
120 // w/o body; w/o path; w/ query
121 additional_bindings {
122 post: "/rpc/query/stream"
123 }
124 // w/ body; w/ path; w/o query
125 additional_bindings {
126 post: "/rpc/body/path/{a}/{b}/stream"
127 body: "c"
128 }
129 // w/ body; w/o path; w/ query
130 additional_bindings {
131 post: "/rpc/body/query/stream"
132 body: "c"
133 }
134 // w/ body; w/ path; w/ query
135 additional_bindings {
136 post: "/rpc/body/path/{a}/query/stream"
137 body: "c"
138 }
139 // w/o body; w/ path; w/ query
140 additional_bindings {
141 post: "/rpc/path/{a}/query/stream"
142 }
143 };
144 }
145 rpc RpcPathSingleNestedStream(SingleNestedProto) returns (stream EmptyProto) {
146 option (google.api.http) = {
147 // w/o body; w/ path (IsNestedProto3); w/o query
148 post: "/rpc/path-nested/{a.str}/stream"
149 };
150 }
151 rpc RpcPathNestedStream(NestedProto) returns (stream EmptyProto) {
152 option (google.api.http) = {
153 // w/ body; w/ path (IsNestedProto3); w/o query
154 post: "/rpc/path-nested/{a.str}/{b}/stream"
155 body: "c"
156
157 // w/o body; w/ path (IsNestedProto3); w/ query
158 additional_bindings {
159 post: "/rpc/path-nested/{a.str}/stream"
160 }
161 // w/ body; w/ path (IsNestedProto3); w/ query
162 additional_bindings {
163 post: "/rpc/path-nested/{a.str}/stream"
164 body: "c"
165 }
166 };
167 }
168}
View as plain text