Files
libopenapi/libopenapi.go
Dave Shanley 6d21790a98 Coverage at 100%.
Model for v2 and v3 has been validated, now to build out a simple high level creation API, as well as port in 3.1 models (I think there are two). and this is ready for heavier testing.
2022-09-05 14:39:12 -04:00

52 lines
1.0 KiB
Go

package main
import (
"fmt"
"github.com/pb33f/libopenapi/datamodel"
high "github.com/pb33f/libopenapi/datamodel/high/3.0"
low "github.com/pb33f/libopenapi/datamodel/low/3.0"
"gopkg.in/yaml.v3"
"io/ioutil"
"os"
)
func main() {
testData := `openapi: 3.0.1
info:
title: this is a title
description: this is a description
tags:
- name: Tag A
description: cake
x-hack: true
- name: Tag B
description: coffee
x-code: hack`
data := []byte(testData)
_ = ioutil.WriteFile("sample.yaml", data, 0664)
info, _ := datamodel.ExtractSpecInfo(data)
lowDoc, err := low.CreateDocument(info)
if len(err) > 0 {
for e := range err {
fmt.Printf("%e\n", err[e])
}
return
}
highDoc := high.NewDocument(lowDoc)
highDoc.Info.GoLow().Title.ValueNode.Value = "let's hack this"
//highDoc.Tags[0].SetName("We are a new name now")
//highDoc.Tags[0].SetDescription("and a new description")
//newTag := lowDoc.AddTag()
//fmt.Println(newTag)
modified, _ := yaml.Marshal(info.RootNode)
fmt.Println(string(modified))
os.Remove("sample.yaml")
}