mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 12:37:49 +00:00
Added support for original format rendering #105
Original input document types are now rendered automatically as JSON or YAML (vs always being YAML). This only operates at the `Document` level for rendering out entire documents. Requested in #105 Signed-off-by: Dave Shanley <dave@quobix.com>
This commit is contained in:
19
document.go
19
document.go
@@ -160,10 +160,23 @@ func (d *document) RenderAndReload() ([]byte, Document, *DocumentModel[v3high.Do
|
||||
if d.highSwaggerModel != nil && d.highOpenAPI3Model == nil {
|
||||
return nil, nil, nil, []error{errors.New("this method only supports OpenAPI 3 documents, not Swagger")}
|
||||
}
|
||||
newBytes, err := d.highOpenAPI3Model.Model.Render()
|
||||
if err != nil {
|
||||
return newBytes, nil, nil, []error{err}
|
||||
|
||||
var newBytes []byte
|
||||
var renderError error
|
||||
|
||||
// render the model as the correct type based on the source.
|
||||
// https://github.com/pb33f/libopenapi/issues/105
|
||||
if d.info.SpecFileType == datamodel.JSONFileType {
|
||||
newBytes, renderError = d.highOpenAPI3Model.Model.RenderJSON()
|
||||
}
|
||||
if d.info.SpecFileType == datamodel.YAMLFileType {
|
||||
newBytes, renderError = d.highOpenAPI3Model.Model.Render()
|
||||
}
|
||||
|
||||
if renderError != nil {
|
||||
return newBytes, nil, nil, []error{renderError}
|
||||
}
|
||||
|
||||
newDoc, err := NewDocumentWithConfiguration(newBytes, d.config)
|
||||
if err != nil {
|
||||
return newBytes, newDoc, nil, []error{err}
|
||||
|
||||
Reference in New Issue
Block a user