Reputation: 1072
I need to read, modify and re-generate a JSON/YAML swagger file documentation. I have deserialized a JSON file with Swagger Parser and I have a Swagger Java Object with the original JSON data mapped correctly.
Now, I need to modify the Swagger Java object, and generate a JSON or YAML file with the done modifications.
Is there a way to do that?
Summary:
File fileJSON = FileUtils.toFile(getClass().getResource("example-api-rest.json"));
Swagger swagger = new SwaggerParser().read(fileJSON.getPath()); //Got it!
...
swagger.editWhatever
...
//Here I need to generate the JSON or YAML again
Thanks.
Upvotes: 10
Views: 11156
Reputation: 97540
To generate OpenAPI 2.0 JSON:
import io.swagger.util.Json;
String jsonOutput = Json.pretty(swagger);
To generate YAML:
import io.swagger.util.Yaml;
String yamlOutput = Yaml.pretty().writeValueAsString(swagger);
The io.swagger.util
package is part of Swagger Core, which is one of the dependencies of Swagger Parser.
If your spec is OpenAPI 3.0, use Json.pretty()
and Yaml.pretty()
from the io.swagger.v3.core.util
package.
In case of OpenAPI 3.1, use Json31.pretty()
and Yaml31.pretty()
from io.swagger.v3.core.util
; see here about the differences in OAS 3.1 vs 3.0 (de)serialization.
Upvotes: 15