| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
libopenapi has full support for OpenAPI 3, 3.1 and 3.2. It can handle the largest and most complex specifications you can think of.
Overlays and Arazzo are also fully supported.
If your company is using libopenapi, please considering supporting this project, like our very kind sponsors:
Need help? Have a question? Want to share your work? Join our discord and come say hi!
Need to validate requests, responses, parameters or schemas? Use the new libopenapi-validator module.
See all the documentation at https://pb33f.io/libopenapi/
👀 Get rolling fast using libopenapi with the Parsing OpenAPI files using go guide 👀
Or, follow these steps and see something in a few seconds.
curl https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/_archive_/schemas/v3.0/pass/petstore.yaml > petstorev3.jsongo get github.com/pb33f/libopenapiCopy and paste this code into a main.go file.
package main
import (
"fmt"
"os"
"github.com/pb33f/libopenapi"
)
func main() {
petstore, _ := os.ReadFile("petstorev3.json")
document, err := libopenapi.NewDocument(petstore)
if err != nil {
panic(fmt.Sprintf("cannot create new document: %e", err))
}
docModel, err := document.BuildV3Model()
if err != nil {
panic(fmt.Sprintf("cannot create v3 model from document: %e", err))
}
// The following fails after the first iteration
for schemaName, schema := range docModel.Model.Components.Schemas.FromOldest() {
if schema.Schema().Properties != nil {
fmt.Printf("Schema '%s' has %d properties\n", schemaName, schema.Schema().Properties.Len())
}
}
}Run it, which should print out:
Schema 'Pet' has 3 properties
Schema 'Error' has 2 propertiesRead the full docs at https://pb33f.io/libopenapi/
Logo gopher is modified, originally from egonelbre
| Back | FazBrowse Home | New Git URL |