From c969d44413c4926e1e77793530773101daf66996 Mon Sep 17 00:00:00 2001 From: charlie Date: Sun, 16 Feb 2025 21:28:39 +0100 Subject: [PATCH 1/2] option to disable default open api server --- engine.go | 3 +++ serve.go | 10 ++++++---- server_test.go | 14 ++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/engine.go b/engine.go index 5adb58f8..67cd3e66 100644 --- a/engine.go +++ b/engine.go @@ -52,6 +52,8 @@ type OpenAPIConfig struct { DisableMessages bool // If true, the engine will not save the OpenAPI JSON spec locally DisableLocalSave bool + // If true, no default server will be added + DisableDefaultServer bool // Pretty prints the OpenAPI spec with proper JSON indentation PrettyFormatJSON bool // URL to serve the OpenAPI JSON spec @@ -117,6 +119,7 @@ func WithOpenAPIConfig(config OpenAPIConfig) func(*Engine) { e.OpenAPI.Config.Disabled = config.Disabled e.OpenAPI.Config.DisableLocalSave = config.DisableLocalSave + e.OpenAPI.Config.DisableDefaultServer = config.DisableDefaultServer e.OpenAPI.Config.PrettyFormatJSON = config.PrettyFormatJSON e.OpenAPI.Config.DisableSwaggerUI = config.DisableSwaggerUI diff --git a/serve.go b/serve.go index 82381de7..55def4f2 100644 --- a/serve.go +++ b/serve.go @@ -38,10 +38,12 @@ func (s *Server) setup() error { if err := s.setupDefaultListener(); err != nil { return err } - s.OpenAPI.Description().Servers = append(s.OpenAPI.Description().Servers, &openapi3.Server{ - URL: s.url(), - Description: "local server", - }) + if !s.OpenAPI.Config.DisableDefaultServer { + s.OpenAPI.Description().Servers = append(s.OpenAPI.Description().Servers, &openapi3.Server{ + URL: s.url(), + Description: "local server", + }) + } go s.OutputOpenAPISpec() s.Engine.RegisterOpenAPIRoutes(s) s.printStartupMessage() diff --git a/server_test.go b/server_test.go index 6db4e338..d3928233 100644 --- a/server_test.go +++ b/server_test.go @@ -90,12 +90,13 @@ func TestWithOpenAPIConfig(t *testing.T) { WithEngineOptions( WithOpenAPIConfig( OpenAPIConfig{ - JSONFilePath: "openapi.json", - DisableLocalSave: true, - PrettyFormatJSON: true, - Disabled: true, - SwaggerURL: "/api", - SpecURL: "/api/openapi.json", + JSONFilePath: "openapi.json", + DisableLocalSave: true, + DisableDefaultServer: true, + PrettyFormatJSON: true, + Disabled: true, + SwaggerURL: "/api", + SpecURL: "/api/openapi.json", }), ), ) @@ -105,6 +106,7 @@ func TestWithOpenAPIConfig(t *testing.T) { require.Equal(t, "openapi.json", s.OpenAPI.Config.JSONFilePath) require.True(t, s.Engine.OpenAPI.Config.Disabled) require.True(t, s.OpenAPI.Config.DisableLocalSave) + require.True(t, s.OpenAPI.Config.DisableDefaultServer) require.True(t, s.OpenAPI.Config.PrettyFormatJSON) }) From 6773c4dc40bd7ef2f7a18556aa31b2bfd370df7d Mon Sep 17 00:00:00 2001 From: sirmackan Date: Mon, 17 Feb 2025 19:56:40 +0100 Subject: [PATCH 2/2] Update engine.go Co-authored-by: Dylan Hitt --- engine.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 67cd3e66..c6a23a17 100644 --- a/engine.go +++ b/engine.go @@ -52,7 +52,8 @@ type OpenAPIConfig struct { DisableMessages bool // If true, the engine will not save the OpenAPI JSON spec locally DisableLocalSave bool - // If true, no default server will be added + // If true, no default server will be added. + // Note: this option only applies to the fuego [Server]. Adaptors are not affected by this option. DisableDefaultServer bool // Pretty prints the OpenAPI spec with proper JSON indentation PrettyFormatJSON bool