diff --git a/spec_builder_helper.go b/spec_builder_helper.go index 4ec4961..e11cfc4 100644 --- a/spec_builder_helper.go +++ b/spec_builder_helper.go @@ -19,7 +19,6 @@ func (e *Engine) OpenAPISpecBuilder() *SpecBuilder { Title: e.swaggerTitle, Description: e.swaggerDesc, Version: e.swaggerVersion, - SwaggerPath: e.swaggerPath, TermsOfService: e.swaggerTermsOfService, ContactName: e.swaggerContactName, ContactURL: e.swaggerContactURL, @@ -31,6 +30,10 @@ func (e *Engine) OpenAPISpecBuilder() *SpecBuilder { ExternalDocsURL: e.swaggerExternalDocsURL, } + if e.swaggerEnabled { + builder.SwaggerPath = resolveSwaggerPath(e.swaggerPath) + } + if e.graphql != nil { builder.GraphQLPath = e.graphql.path builder.GraphQLPlayground = e.graphql.playground diff --git a/spec_builder_helper_test.go b/spec_builder_helper_test.go index 1f71551..013fd4a 100644 --- a/spec_builder_helper_test.go +++ b/spec_builder_helper_test.go @@ -130,3 +130,27 @@ func TestEngine_Good_OpenAPISpecBuilderCarriesEngineMetadata(t *testing.T) { t.Fatal("expected expvar path from engine metadata in generated spec") } } + +func TestEngine_Good_OpenAPISpecBuilderExportsDefaultSwaggerPath(t *testing.T) { + gin.SetMode(gin.TestMode) + + e, err := api.New(api.WithSwagger("Engine API", "Engine metadata", "2.0.0")) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + builder := e.OpenAPISpecBuilder() + data, err := builder.Build(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + var spec map[string]any + if err := json.Unmarshal(data, &spec); err != nil { + t.Fatalf("invalid JSON: %v", err) + } + + if got := spec["x-swagger-ui-path"]; got != "/swagger" { + t.Fatalf("expected default x-swagger-ui-path=/swagger, got %v", got) + } +}