github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/proto/examplepb/openapi_merge.swagger.json (about) 1 { 2 "swagger": "2.0", 3 "info": { 4 "title": "Merging Services", 5 "description": "This is an example of merging two proto files.", 6 "version": "version not set" 7 }, 8 "tags": [ 9 { 10 "name": "ServiceA" 11 }, 12 { 13 "name": "ServiceC" 14 }, 15 { 16 "name": "ServiceB" 17 } 18 ], 19 "consumes": [ 20 "application/json" 21 ], 22 "produces": [ 23 "application/json" 24 ], 25 "paths": { 26 "/v1/example/a/1": { 27 "post": { 28 "summary": "ServiceA.MethodOne receives InMessageA and returns OutMessageA", 29 "description": "Here is the detail explanation about ServiceA.MethodOne.", 30 "operationId": "ServiceA_MethodOne", 31 "responses": { 32 "200": { 33 "description": "A successful response.", 34 "schema": { 35 "$ref": "#/definitions/examplepbOutMessageA" 36 } 37 }, 38 "default": { 39 "description": "An unexpected error response.", 40 "schema": { 41 "$ref": "#/definitions/rpcStatus" 42 } 43 } 44 }, 45 "parameters": [ 46 { 47 "name": "body", 48 "description": "InMessageA represents a message to ServiceA and ServiceC.", 49 "in": "body", 50 "required": true, 51 "schema": { 52 "$ref": "#/definitions/examplepbInMessageA" 53 } 54 } 55 ], 56 "tags": [ 57 "ServiceA" 58 ] 59 } 60 }, 61 "/v1/example/a/2": { 62 "post": { 63 "summary": "ServiceA.MethodTwo receives OutMessageA and returns InMessageA", 64 "description": "Here is the detail explanation about ServiceA.MethodTwo.", 65 "operationId": "ServiceA_MethodTwo", 66 "responses": { 67 "200": { 68 "description": "A successful response.", 69 "schema": { 70 "$ref": "#/definitions/examplepbInMessageA" 71 } 72 }, 73 "default": { 74 "description": "An unexpected error response.", 75 "schema": { 76 "$ref": "#/definitions/rpcStatus" 77 } 78 } 79 }, 80 "parameters": [ 81 { 82 "name": "body", 83 "description": "OutMessageA represents a message returned from ServiceA.", 84 "in": "body", 85 "required": true, 86 "schema": { 87 "$ref": "#/definitions/examplepbOutMessageA" 88 } 89 } 90 ], 91 "tags": [ 92 "ServiceA" 93 ] 94 } 95 }, 96 "/v1/example/b/1": { 97 "post": { 98 "summary": "ServiceB.MethodOne receives InMessageB and returns OutMessageB", 99 "description": "Here is the detail explanation about ServiceB.MethodOne.", 100 "operationId": "ServiceB_MethodOne", 101 "responses": { 102 "200": { 103 "description": "A successful response.", 104 "schema": { 105 "$ref": "#/definitions/examplepbOutMessageB" 106 } 107 }, 108 "default": { 109 "description": "An unexpected error response.", 110 "schema": { 111 "$ref": "#/definitions/rpcStatus" 112 } 113 } 114 }, 115 "parameters": [ 116 { 117 "name": "body", 118 "description": "InMessageB represents a message to ServiceB.", 119 "in": "body", 120 "required": true, 121 "schema": { 122 "$ref": "#/definitions/examplepbInMessageB" 123 } 124 } 125 ], 126 "tags": [ 127 "ServiceB" 128 ] 129 } 130 }, 131 "/v1/example/b/2": { 132 "post": { 133 "summary": "ServiceB.MethodTwo receives OutMessageB and returns InMessageB", 134 "description": "Here is the detail explanation about ServiceB.MethodTwo.", 135 "operationId": "ServiceB_MethodTwo", 136 "responses": { 137 "200": { 138 "description": "A successful response.", 139 "schema": { 140 "$ref": "#/definitions/examplepbInMessageB" 141 } 142 }, 143 "default": { 144 "description": "An unexpected error response.", 145 "schema": { 146 "$ref": "#/definitions/rpcStatus" 147 } 148 } 149 }, 150 "parameters": [ 151 { 152 "name": "body", 153 "description": "OutMessageB represents a message returned from ServiceB.", 154 "in": "body", 155 "required": true, 156 "schema": { 157 "$ref": "#/definitions/examplepbOutMessageB" 158 } 159 } 160 ], 161 "tags": [ 162 "ServiceB" 163 ] 164 } 165 }, 166 "/v1/example/c/1": { 167 "post": { 168 "summary": "ServiceC.MethodOne receives InMessageA and returns OutMessageC", 169 "description": "Here is the detail explanation about ServiceC.MethodOne.", 170 "operationId": "ServiceC_MethodOne", 171 "responses": { 172 "200": { 173 "description": "A successful response.", 174 "schema": { 175 "$ref": "#/definitions/examplepbOutMessageC" 176 } 177 }, 178 "default": { 179 "description": "An unexpected error response.", 180 "schema": { 181 "$ref": "#/definitions/rpcStatus" 182 } 183 } 184 }, 185 "parameters": [ 186 { 187 "name": "body", 188 "description": "InMessageA represents a message to ServiceA and ServiceC.", 189 "in": "body", 190 "required": true, 191 "schema": { 192 "$ref": "#/definitions/examplepbInMessageA" 193 } 194 } 195 ], 196 "tags": [ 197 "ServiceC" 198 ] 199 } 200 }, 201 "/v1/example/c/2": { 202 "post": { 203 "summary": "ServiceC.MethodTwo receives OutMessageA and returns InMessageA", 204 "description": "Here is the detail explanation about ServiceC.MethodTwo.", 205 "operationId": "ServiceC_MethodTwo", 206 "responses": { 207 "200": { 208 "description": "A successful response.", 209 "schema": { 210 "$ref": "#/definitions/examplepbInMessageA" 211 } 212 }, 213 "default": { 214 "description": "An unexpected error response.", 215 "schema": { 216 "$ref": "#/definitions/rpcStatus" 217 } 218 } 219 }, 220 "parameters": [ 221 { 222 "name": "body", 223 "description": "OutMessageA represents a message returned from ServiceA.", 224 "in": "body", 225 "required": true, 226 "schema": { 227 "$ref": "#/definitions/examplepbOutMessageA" 228 } 229 } 230 ], 231 "tags": [ 232 "ServiceC" 233 ] 234 } 235 } 236 }, 237 "definitions": { 238 "examplepbInMessageA": { 239 "type": "object", 240 "properties": { 241 "values": { 242 "type": "array", 243 "items": { 244 "type": "string" 245 }, 246 "title": "Here is the explanation about InMessageA.values" 247 } 248 }, 249 "description": "InMessageA represents a message to ServiceA and ServiceC." 250 }, 251 "examplepbInMessageB": { 252 "type": "object", 253 "properties": { 254 "value": { 255 "type": "string", 256 "title": "Here is the explanation about InMessageB.values" 257 } 258 }, 259 "description": "InMessageB represents a message to ServiceB." 260 }, 261 "examplepbOutMessageA": { 262 "type": "object", 263 "properties": { 264 "value": { 265 "type": "string", 266 "title": "Here is the explanation about OutMessageA.value" 267 } 268 }, 269 "description": "OutMessageA represents a message returned from ServiceA." 270 }, 271 "examplepbOutMessageB": { 272 "type": "object", 273 "properties": { 274 "values": { 275 "type": "array", 276 "items": { 277 "type": "string" 278 }, 279 "title": "Here is the explanation about OutMessageB.value" 280 } 281 }, 282 "description": "OutMessageB represents a message returned from ServiceB." 283 }, 284 "examplepbOutMessageC": { 285 "type": "object", 286 "properties": { 287 "value": { 288 "type": "string", 289 "title": "Here is the explanation about OutMessageC.value" 290 } 291 }, 292 "description": "OutMessageC represents a message returned from ServiceC." 293 }, 294 "protobufAny": { 295 "type": "object", 296 "properties": { 297 "@type": { 298 "type": "string" 299 } 300 }, 301 "additionalProperties": {} 302 }, 303 "rpcStatus": { 304 "type": "object", 305 "properties": { 306 "code": { 307 "type": "integer", 308 "format": "int32" 309 }, 310 "message": { 311 "type": "string" 312 }, 313 "details": { 314 "type": "array", 315 "items": { 316 "type": "object", 317 "$ref": "#/definitions/protobufAny" 318 } 319 } 320 } 321 } 322 } 323 }