@@ -305,24 +305,37 @@ func (s *Container) Run(
305
305
}),
306
306
}
307
307
308
- mux := runtime .NewServeMux (muxOpts ... )
308
+ // Create the gRPC gateway mux
309
+ grpcMux := runtime .NewServeMux (muxOpts ... )
309
310
310
- if err = grpcV1 .RegisterPermissionHandler (ctx , mux , conn ); err != nil {
311
+ if err = grpcV1 .RegisterPermissionHandler (ctx , grpcMux , conn ); err != nil {
311
312
return err
312
313
}
313
- if err = grpcV1 .RegisterSchemaHandler (ctx , mux , conn ); err != nil {
314
+ if err = grpcV1 .RegisterSchemaHandler (ctx , grpcMux , conn ); err != nil {
314
315
return err
315
316
}
316
- if err = grpcV1 .RegisterDataHandler (ctx , mux , conn ); err != nil {
317
+ if err = grpcV1 .RegisterDataHandler (ctx , grpcMux , conn ); err != nil {
317
318
return err
318
319
}
319
- if err = grpcV1 .RegisterBundleHandler (ctx , mux , conn ); err != nil {
320
+ if err = grpcV1 .RegisterBundleHandler (ctx , grpcMux , conn ); err != nil {
320
321
return err
321
322
}
322
- if err = grpcV1 .RegisterTenancyHandler (ctx , mux , conn ); err != nil {
323
+ if err = grpcV1 .RegisterTenancyHandler (ctx , grpcMux , conn ); err != nil {
323
324
return err
324
325
}
325
326
327
+ // Create a new http.ServeMux for serving your OpenAPI file and gRPC gateway
328
+ httpMux := http .NewServeMux ()
329
+
330
+ if srv .HTTP .ExposeOpenAPI {
331
+ httpMux .HandleFunc ("/openapi.json" , func (w http.ResponseWriter , r * http.Request ) {
332
+ http .ServeFile (w , r , "./docs/api-reference/openapi.json" )
333
+ })
334
+ }
335
+
336
+ // Handle all gRPC gateway routes
337
+ httpMux .Handle ("/" , grpcMux )
338
+
326
339
httpServer = & http.Server {
327
340
Addr : ":" + srv .HTTP .Port ,
328
341
Handler : cors .New (cors.Options {
@@ -333,7 +346,7 @@ func (s *Container) Run(
333
346
http .MethodGet , http .MethodPost ,
334
347
http .MethodHead , http .MethodPatch , http .MethodDelete , http .MethodPut ,
335
348
},
336
- }).Handler (mux ),
349
+ }).Handler (httpMux ),
337
350
ReadHeaderTimeout : 5 * time .Second ,
338
351
}
339
352
0 commit comments