-
-
Notifications
You must be signed in to change notification settings - Fork 95
Open
Description
libopenapi excludes component definitions (parameters, headers, schemas, etc.) whose names start with x-, treating them as extensions rather than valid component definitions.
Environment:
libopenapi version: v0.31.2
Go version: 1.25.5
Reproduction:
package main
import (
"fmt"
"os"
"github.com/pb33f/libopenapi"
"github.com/pb33f/libopenapi/datamodel"
)
func main() {
data, err := os.ReadFile("spec.yml")
if err != nil {
panic(err)
}
// Test with default config (ExcludeExtensionRefs: false)
docConfig := &datamodel.DocumentConfiguration{
SkipCircularReferenceCheck: true,
}
doc, _ := libopenapi.NewDocumentWithConfiguration(data, docConfig)
model, _ := doc.BuildV3Model()
fmt.Printf("Parameters count: %d\n", model.Model.Components.Parameters.Len())
for name := range model.Model.Components.Parameters.FromOldest() {
fmt.Printf(" - %s\n", name)
}
fmt.Printf("Headers count: %d\n", model.Model.Components.Headers.Len())
for name := range model.Model.Components.Headers.FromOldest() {
fmt.Printf(" - %s\n", name)
}
fmt.Printf("Schemas count: %d\n", model.Model.Components.Schemas.Len())
for name := range model.Model.Components.Schemas.FromOldest() {
fmt.Printf(" - %s\n", name)
}
fmt.Printf("RequestBodies count: %d\n", model.Model.Components.RequestBodies.Len())
for name := range model.Model.Components.RequestBodies.FromOldest() {
fmt.Printf(" - %s\n", name)
}
fmt.Printf("Responses count: %d\n", model.Model.Components.Responses.Len())
for name := range model.Model.Components.Responses.FromOldest() {
fmt.Printf(" - %s\n", name)
}
}
Metadata
Metadata
Assignees
Labels
No labels