mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-09 20:47:44 +00:00
52 lines
1.1 KiB
Go
52 lines
1.1 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)
|
|
fmt.Println(highDoc.Info.Title)
|
|
|
|
highDoc.Info.GoLow().Title.ValueNode.Value = "let's hack this shizzle"
|
|
|
|
modified, _ := yaml.Marshal(info.RootNode)
|
|
fmt.Println(string(modified))
|
|
|
|
d, _ := yaml.Marshal(highDoc.Tags[0])
|
|
fmt.Println(d)
|
|
|
|
os.Remove("sample.yaml")
|
|
|
|
}
|