forked from loafle/openapi-generator-original
add openapi (json/yaml) generator
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package org.openapitools.codegen.languages;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import org.openapitools.codegen.*;
|
||||
import io.swagger.v3.oas.models.*;
|
||||
import io.swagger.v3.core.util.Json;
|
||||
|
||||
public class OpenAPIGenerator extends DefaultCodegen implements CodegenConfig {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIGenerator.class);
|
||||
|
||||
public OpenAPIGenerator() {
|
||||
super();
|
||||
embeddedTemplateDir = templateDir = "openapi";
|
||||
outputFolder = "generated-code/openapi";
|
||||
|
||||
supportingFiles.add(new SupportingFile("README.md", "", "README.md"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
return CodegenType.DOCUMENTATION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "openapi";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHelp() {
|
||||
return "Creates a static openapi.json file (OpenAPI spec v3.0).";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processOpenAPI(OpenAPI openAPI) {
|
||||
String swaggerString = Json.pretty(openAPI);
|
||||
|
||||
try {
|
||||
String outputFile = outputFolder + File.separator + "openapi.json";
|
||||
FileUtils.writeStringToFile(new File(outputFile), swaggerString);
|
||||
LOGGER.info("wrote file to " + outputFile);
|
||||
} catch (Exception e) {
|
||||
LOGGER.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String escapeQuotationMark(String input) {
|
||||
// just return the original string
|
||||
return input;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String escapeUnsafeCharacters(String input) {
|
||||
// just return the original string
|
||||
return input;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package org.openapitools.codegen.languages;
|
||||
|
||||
import org.openapitools.codegen.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Map;
|
||||
import java.io.File;
|
||||
|
||||
public class OpenAPIYamlGenerator extends DefaultCodegen implements CodegenConfig {
|
||||
public static final String OUTPUT_NAME = "outputFile";
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OpenAPIYamlGenerator.class);
|
||||
|
||||
protected String outputFile = "openapi.yaml";
|
||||
|
||||
public OpenAPIYamlGenerator() {
|
||||
super();
|
||||
embeddedTemplateDir = templateDir = "openapi-yaml";
|
||||
outputFolder = "generated-code/openapi-yaml";
|
||||
cliOptions.add(new CliOption(OUTPUT_NAME, "output filename"));
|
||||
supportingFiles.add(new SupportingFile("README.md", "", "README.md"));
|
||||
supportingFiles.add(new SupportingFile("openapi.mustache",
|
||||
"openapi",
|
||||
"openapi.yaml"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
return CodegenType.DOCUMENTATION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "openapi-yaml";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHelp() {
|
||||
return "Creates a static openapi.yaml file (OpenAPI spec v3).";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void processOpts() {
|
||||
super.processOpts();
|
||||
if (additionalProperties.containsKey(OUTPUT_NAME)) {
|
||||
this.outputFile = additionalProperties.get(OUTPUT_NAME).toString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) {
|
||||
generateYAMLSpecFile(objs);
|
||||
return super.postProcessSupportingFileData(objs);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String escapeQuotationMark(String input) {
|
||||
// just return the original string
|
||||
return input;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String escapeUnsafeCharacters(String input) {
|
||||
// just return the original string
|
||||
return input;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -51,6 +51,8 @@ org.openapitools.codegen.languages.JMeterCodegen
|
||||
org.openapitools.codegen.languages.LuaClientCodegen
|
||||
org.openapitools.codegen.languages.NodeJSServerCodegen
|
||||
org.openapitools.codegen.languages.ObjcClientCodegen
|
||||
org.openapitools.codegen.languages.OpenAPIGenerator
|
||||
org.openapitools.codegen.languages.OpenAPIYamlGenerator
|
||||
org.openapitools.codegen.languages.PerlClientCodegen
|
||||
org.openapitools.codegen.languages.PhpClientCodegen
|
||||
org.openapitools.codegen.languages.PhpLumenServerCodegen
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# OpenAPI YAML
|
||||
This is a OpenAPI YAML built by the [openapi-generator](https://github.com/openapitools/openapi-genreator) project.
|
||||
@@ -0,0 +1 @@
|
||||
{{{openapi-yaml}}}
|
||||
@@ -0,0 +1,2 @@
|
||||
# OpenAPI JSON
|
||||
This is a OpenAPI JSON built by the [openapi-generator](https://github.com/openapitools/openapi-genreator) project.
|
||||
@@ -1,2 +0,0 @@
|
||||
# Swagger JSON
|
||||
This is a swagger JSON built by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project.
|
||||
Reference in New Issue
Block a user