From b61dfefa5b27bd777611ab509237bb8d4b8d6e73 Mon Sep 17 00:00:00 2001 From: Alex Chauvin Date: Tue, 13 Jun 2017 09:57:55 +0200 Subject: [PATCH 01/17] serverPort add from cli (#5821) in order to change the serverPort from the codegen cli --- .../io/swagger/codegen/languages/FlaskConnexionCodegen.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java index c4f9eba2f66..cf4b7a5b5c8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java @@ -141,6 +141,8 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf defaultValue("default_controller")); cliOptions.add(new CliOption(SUPPORT_PYTHON2, "support python2"). defaultValue("false")); + cliOptions.add(new CliOption("serverPort", "TCP port to listen to in app.run"). + defaultValue("8080")); } @Override From d6c717263ce378c6de55deec13b3d3b56fc72c30 Mon Sep 17 00:00:00 2001 From: wing328 Date: Wed, 14 Jun 2017 00:18:54 +0800 Subject: [PATCH 02/17] [Python] add project name to setup.py in python client (#5836) * add project name to setup.py in python client * update python README to use project name * add cli option project name for python --- .../io/swagger/codegen/CodegenConstants.java | 1 + .../languages/PythonClientCodegen.java | 1313 +++++++++-------- .../src/main/resources/python/README.mustache | 2 +- .../src/main/resources/python/setup.mustache | 2 +- .../options/PythonClientOptionsProvider.java | 2 + .../python/PythonClientOptionsTest.java | 2 + samples/client/petstore/python/README.md | 2 +- samples/client/petstore/python/setup.py | 2 +- 8 files changed, 673 insertions(+), 653 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConstants.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConstants.java index d9bf80c1b62..4dea75e8208 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConstants.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConstants.java @@ -96,6 +96,7 @@ public class CodegenConstants { public static final String ENSURE_UNIQUE_PARAMS = "ensureUniqueParams"; public static final String ENSURE_UNIQUE_PARAMS_DESC = "Whether to ensure parameter names are unique in an operation (rename parameters that are not)."; + public static final String PROJECT_NAME = "projectName"; public static final String PACKAGE_NAME = "packageName"; public static final String PACKAGE_VERSION = "packageVersion"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java index a60bbcec16b..1dd62fdf189 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java @@ -1,649 +1,664 @@ -package io.swagger.codegen.languages; - -import io.swagger.codegen.CliOption; -import io.swagger.codegen.CodegenConfig; -import io.swagger.codegen.CodegenConstants; -import io.swagger.codegen.CodegenModel; -import io.swagger.codegen.CodegenParameter; -import io.swagger.codegen.CodegenProperty; -import io.swagger.codegen.CodegenType; -import io.swagger.codegen.DefaultCodegen; -import io.swagger.codegen.SupportingFile; -import io.swagger.models.properties.*; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; - -import org.apache.commons.lang3.StringUtils; - -public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig { - public static final String PACKAGE_URL = "packageUrl"; - - protected String packageName; - protected String packageVersion; - protected String packageUrl; - protected String apiDocPath = "docs/"; - protected String modelDocPath = "docs/"; - - protected Map regexModifiers; - - private String testFolder; - - public PythonClientCodegen() { - super(); - - // clear import mapping (from default generator) as python does not use it - // at the moment - importMapping.clear(); - - modelPackage = "models"; - apiPackage = "api"; - outputFolder = "generated-code" + File.separatorChar + "python"; - - modelTemplateFiles.put("model.mustache", ".py"); - apiTemplateFiles.put("api.mustache", ".py"); - - modelTestTemplateFiles.put("model_test.mustache", ".py"); - apiTestTemplateFiles.put("api_test.mustache", ".py"); - - embeddedTemplateDir = templateDir = "python"; - - modelDocTemplateFiles.put("model_doc.mustache", ".md"); - apiDocTemplateFiles.put("api_doc.mustache", ".md"); - - testFolder = "test"; - - languageSpecificPrimitives.clear(); - languageSpecificPrimitives.add("int"); - languageSpecificPrimitives.add("float"); - languageSpecificPrimitives.add("list"); - languageSpecificPrimitives.add("bool"); - languageSpecificPrimitives.add("str"); - languageSpecificPrimitives.add("datetime"); - languageSpecificPrimitives.add("date"); - languageSpecificPrimitives.add("object"); - - typeMapping.clear(); - typeMapping.put("integer", "int"); - typeMapping.put("float", "float"); - typeMapping.put("number", "float"); - typeMapping.put("long", "int"); - typeMapping.put("double", "float"); - typeMapping.put("array", "list"); - typeMapping.put("map", "dict"); - typeMapping.put("boolean", "bool"); - typeMapping.put("string", "str"); - typeMapping.put("date", "date"); - typeMapping.put("DateTime", "datetime"); - typeMapping.put("object", "object"); - typeMapping.put("file", "file"); - // TODO binary should be mapped to byte array - // mapped to String as a workaround - typeMapping.put("binary", "str"); - typeMapping.put("ByteArray", "str"); - // map uuid to string for the time being - typeMapping.put("UUID", "str"); - - // from https://docs.python.org/release/2.5.4/ref/keywords.html - setReservedWordsLowerCase( - Arrays.asList( - // local variable name used in API methods (endpoints) - "all_params", "resource_path", "path_params", "query_params", - "header_params", "form_params", "local_var_files", "body_params", "auth_settings", - // @property - "property", - // python reserved words - "and", "del", "from", "not", "while", "as", "elif", "global", "or", "with", - "assert", "else", "if", "pass", "yield", "break", "except", "import", - "print", "class", "exec", "in", "raise", "continue", "finally", "is", - "return", "def", "for", "lambda", "try", "self", "None")); - - regexModifiers = new HashMap(); - regexModifiers.put('i', "IGNORECASE"); - regexModifiers.put('l', "LOCALE"); - regexModifiers.put('m', "MULTILINE"); - regexModifiers.put('s', "DOTALL"); - regexModifiers.put('u', "UNICODE"); - regexModifiers.put('x', "VERBOSE"); - - cliOptions.clear(); - cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).") - .defaultValue("swagger_client")); - cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.") - .defaultValue("1.0.0")); - cliOptions.add(new CliOption(PACKAGE_URL, "python package URL.")); - cliOptions.add(CliOption.newBoolean(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, - CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC).defaultValue(Boolean.TRUE.toString())); - cliOptions.add(new CliOption(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "hides the timestamp when files were generated") - .defaultValue(Boolean.TRUE.toString())); - } - - @Override - public void processOpts() { - super.processOpts(); - Boolean excludeTests = false; - - if(additionalProperties.containsKey(CodegenConstants.EXCLUDE_TESTS)) { - excludeTests = Boolean.valueOf(additionalProperties.get(CodegenConstants.EXCLUDE_TESTS).toString()); - } - - if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { - setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); - } - else { - setPackageName("swagger_client"); - } - - if (additionalProperties.containsKey(CodegenConstants.PACKAGE_VERSION)) { - setPackageVersion((String) additionalProperties.get(CodegenConstants.PACKAGE_VERSION)); - } - else { - setPackageVersion("1.0.0"); - } - - // default HIDE_GENERATION_TIMESTAMP to true - if (!additionalProperties.containsKey(CodegenConstants.HIDE_GENERATION_TIMESTAMP)) { - additionalProperties.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, Boolean.TRUE.toString()); - } else { - additionalProperties.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, - Boolean.valueOf(additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP).toString())); - } - - additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); - additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion); - - // make api and model doc path available in mustache template - additionalProperties.put("apiDocPath", apiDocPath); - additionalProperties.put("modelDocPath", modelDocPath); - - if (additionalProperties.containsKey(PACKAGE_URL)) { - setPackageUrl((String) additionalProperties.get(PACKAGE_URL)); - } - - String swaggerFolder = packageName; - - modelPackage = swaggerFolder + File.separatorChar + "models"; - apiPackage = swaggerFolder + File.separatorChar + "apis"; - - supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); - - supportingFiles.add(new SupportingFile("setup.mustache", "", "setup.py")); - supportingFiles.add(new SupportingFile("tox.mustache", "", "tox.ini")); - supportingFiles.add(new SupportingFile("test-requirements.mustache", "", "test-requirements.txt")); - supportingFiles.add(new SupportingFile("requirements.mustache", "", "requirements.txt")); - - supportingFiles.add(new SupportingFile("api_client.mustache", swaggerFolder, "api_client.py")); - supportingFiles.add(new SupportingFile("rest.mustache", swaggerFolder, "rest.py")); - supportingFiles.add(new SupportingFile("configuration.mustache", swaggerFolder, "configuration.py")); - supportingFiles.add(new SupportingFile("__init__package.mustache", swaggerFolder, "__init__.py")); - supportingFiles.add(new SupportingFile("__init__model.mustache", modelPackage, "__init__.py")); - supportingFiles.add(new SupportingFile("__init__api.mustache", apiPackage, "__init__.py")); - - if(Boolean.FALSE.equals(excludeTests)) { - supportingFiles.add(new SupportingFile("__init__test.mustache", testFolder, "__init__.py")); - } - supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); - supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); - supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml")); - } - - private static String dropDots(String str) { - return str.replaceAll("\\.", "_"); - } - - - @Override - public Map postProcessModels(Map objs) { - // process enum in models - return postProcessModelsEnum(objs); - } - - @Override - public void postProcessParameter(CodegenParameter parameter){ - postProcessPattern(parameter.pattern, parameter.vendorExtensions); - } - - @Override - public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { - postProcessPattern(property.pattern, property.vendorExtensions); - } - - /* - * The swagger pattern spec follows the Perl convention and style of modifiers. Python - * does not support this in as natural a way so it needs to convert it. See - * https://docs.python.org/2/howto/regex.html#compilation-flags for details. - */ - public void postProcessPattern(String pattern, Map vendorExtensions){ - if(pattern != null) { - int i = pattern.lastIndexOf('/'); - - //Must follow Perl /pattern/modifiers convention - if(pattern.charAt(0) != '/' || i < 2) { - throw new IllegalArgumentException("Pattern must follow the Perl " - + "/pattern/modifiers convention. "+pattern+" is not valid."); - } - - String regex = pattern.substring(1, i).replace("'", "\\'"); - List modifiers = new ArrayList(); - - for(char c : pattern.substring(i).toCharArray()) { - if(regexModifiers.containsKey(c)) { - String modifier = regexModifiers.get(c); - modifiers.add(modifier); - } - } - - vendorExtensions.put("x-regex", regex); - vendorExtensions.put("x-modifiers", modifiers); - } - } - - @Override - public CodegenType getTag() { - return CodegenType.CLIENT; - } - - @Override - public String getName() { - return "python"; - } - - @Override - public String getHelp() { - return "Generates a Python client library."; - } - - @Override - public String escapeReservedWord(String name) { - if(this.reservedWordsMappings().containsKey(name)) { - return this.reservedWordsMappings().get(name); - } - return "_" + name; - } - - @Override - public String apiDocFileFolder() { - return (outputFolder + "/" + apiDocPath); - } - - @Override - public String modelDocFileFolder() { - return (outputFolder + "/" + modelDocPath); - } - - @Override - public String toModelDocFilename(String name) { - return toModelName(name); - } - - @Override - public String toApiDocFilename(String name) { - return toApiName(name); - } - - - @Override - public String apiFileFolder() { - return outputFolder + File.separatorChar + apiPackage().replace('.', File.separatorChar); - } - - @Override - public String modelFileFolder() { - return outputFolder + File.separatorChar + modelPackage().replace('.', File.separatorChar); - } - - @Override - public String apiTestFileFolder() { - return outputFolder + File.separatorChar + testFolder; - } - - @Override - public String modelTestFileFolder() { - return outputFolder + File.separatorChar + testFolder; - } - - @Override - public String getTypeDeclaration(Property p) { - if (p instanceof ArrayProperty) { - ArrayProperty ap = (ArrayProperty) p; - Property inner = ap.getItems(); - return getSwaggerType(p) + "[" + getTypeDeclaration(inner) + "]"; - } else if (p instanceof MapProperty) { - MapProperty mp = (MapProperty) p; - Property inner = mp.getAdditionalProperties(); - - return getSwaggerType(p) + "(str, " + getTypeDeclaration(inner) + ")"; - } - return super.getTypeDeclaration(p); - } - - @Override - public String getSwaggerType(Property p) { - String swaggerType = super.getSwaggerType(p); - String type = null; - if (typeMapping.containsKey(swaggerType)) { - type = typeMapping.get(swaggerType); - if (languageSpecificPrimitives.contains(type)) { - return type; - } - } else { - type = toModelName(swaggerType); - } - return type; - } - - @Override - public String toVarName(String name) { - // sanitize name - name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. - - // remove dollar sign - name = name.replaceAll("$", ""); - - // if it's all uppper case, convert to lower case - if (name.matches("^[A-Z_]*$")) { - name = name.toLowerCase(); - } - - // underscore the variable name - // petId => pet_id - name = underscore(name); - - // remove leading underscore - name = name.replaceAll("^_*", ""); - - // for reserved word or word starting with number, append _ - if (isReservedWord(name) || name.matches("^\\d.*")) { - name = escapeReservedWord(name); - } - - return name; - } - - @Override - public String toParamName(String name) { - // to avoid conflicts with 'callback' parameter for async call - if ("callback".equals(name)) { - return "param_callback"; - } - - // should be the same as variable name - return toVarName(name); - } - - @Override - public String toModelName(String name) { - name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. - // remove dollar sign - name = name.replaceAll("$", ""); - - // model name cannot use reserved keyword, e.g. return - if (isReservedWord(name)) { - LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name)); - name = "model_" + name; // e.g. return => ModelReturn (after camelize) - } - - // model name starts with number - if (name.matches("^\\d.*")) { - LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + camelize("model_" + name)); - name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) - } - - if (!StringUtils.isEmpty(modelNamePrefix)) { - name = modelNamePrefix + "_" + name; - } - - if (!StringUtils.isEmpty(modelNameSuffix)) { - name = name + "_" + modelNameSuffix; - } - - // camelize the model name - // phone_number => PhoneNumber - return camelize(name); - } - - @Override - public String toModelFilename(String name) { - name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. - // remove dollar sign - name = name.replaceAll("$", ""); - - // model name cannot use reserved keyword, e.g. return - if (isReservedWord(name)) { - LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + underscore(dropDots("model_" + name))); - name = "model_" + name; // e.g. return => ModelReturn (after camelize) - } - - // model name starts with number - if (name.matches("^\\d.*")) { - LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + underscore("model_" + name)); - name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) - } - - if (!StringUtils.isEmpty(modelNamePrefix)) { - name = modelNamePrefix + "_" + name; - } - - if (!StringUtils.isEmpty(modelNameSuffix)) { - name = name + "_" + modelNameSuffix; - } - - // underscore the model file name - // PhoneNumber => phone_number - return underscore(dropDots(name)); - } - - @Override - public String toModelTestFilename(String name) { - return "test_" + toModelFilename(name); - } - - @Override - public String toApiFilename(String name) { - // replace - with _ e.g. created-at => created_at - name = name.replaceAll("-", "_"); - - // e.g. PhoneNumberApi.rb => phone_number_api.rb - return underscore(name) + "_api"; - } - - @Override - public String toApiTestFilename(String name) { - return "test_" + toApiFilename(name); - } - - @Override - public String toApiName(String name) { - if (name.length() == 0) { - return "DefaultApi"; - } - // e.g. phone_number_api => PhoneNumberApi - return camelize(name) + "Api"; - } - - @Override - public String toApiVarName(String name) { - if (name.length() == 0) { - return "default_api"; - } - return underscore(name) + "_api"; - } - - @Override - public String toOperationId(String operationId) { - // throw exception if method name is empty (should not occur as an auto-generated method name will be used) - if (StringUtils.isEmpty(operationId)) { - throw new RuntimeException("Empty method name (operationId) not allowed"); - } - - // method name cannot use reserved keyword, e.g. return - if (isReservedWord(operationId)) { - LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + underscore(sanitizeName("call_" + operationId))); - operationId = "call_" + operationId; - } - - return underscore(sanitizeName(operationId)); - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public void setPackageVersion(String packageVersion) { - this.packageVersion = packageVersion; - } - - public void setPackageUrl(String packageUrl) { - this.packageUrl = packageUrl; - } - - /** - * Generate Python package name from String `packageName` - * - * (PEP 0008) Python packages should also have short, all-lowercase names, - * although the use of underscores is discouraged. - * - * @param packageName Package name - * @return Python package name that conforms to PEP 0008 - */ - @SuppressWarnings("static-method") - public String generatePackageName(String packageName) { - return underscore(packageName.replaceAll("[^\\w]+", "")); - } - - /** - * Return the default value of the property - * - * @param p Swagger property object - * @return string presentation of the default value of the property - */ - @Override - public String toDefaultValue(Property p) { - if (p instanceof StringProperty) { - StringProperty dp = (StringProperty) p; - if (dp.getDefault() != null) { - if (Pattern.compile("\r\n|\r|\n").matcher(dp.getDefault()).find()) - return "'''" + dp.getDefault() + "'''"; - else - return "'" + dp.getDefault() + "'"; - } - } else if (p instanceof BooleanProperty) { - BooleanProperty dp = (BooleanProperty) p; - if (dp.getDefault() != null) { - if (dp.getDefault().toString().equalsIgnoreCase("false")) - return "False"; - else - return "True"; - } - } else if (p instanceof DateProperty) { - // TODO - } else if (p instanceof DateTimeProperty) { - // TODO - } else if (p instanceof DoubleProperty) { - DoubleProperty dp = (DoubleProperty) p; - if (dp.getDefault() != null) { - return dp.getDefault().toString(); - } - } else if (p instanceof FloatProperty) { - FloatProperty dp = (FloatProperty) p; - if (dp.getDefault() != null) { - return dp.getDefault().toString(); - } - } else if (p instanceof IntegerProperty) { - IntegerProperty dp = (IntegerProperty) p; - if (dp.getDefault() != null) { - return dp.getDefault().toString(); - } - } else if (p instanceof LongProperty) { - LongProperty dp = (LongProperty) p; - if (dp.getDefault() != null) { - return dp.getDefault().toString(); - } - } - - return null; - } - - @Override - public void setParameterExampleValue(CodegenParameter p) { - String example; - - if (p.defaultValue == null) { - example = p.example; - } else { - example = p.defaultValue; - } - - String type = p.baseType; - if (type == null) { - type = p.dataType; - } - - if ("String".equalsIgnoreCase(type) || "str".equalsIgnoreCase(type)) { - if (example == null) { - example = p.paramName + "_example"; - } - example = "'" + escapeText(example) + "'"; - } else if ("Integer".equals(type) || "int".equals(type)) { - if (example == null) { - example = "56"; - } - } else if ("Float".equalsIgnoreCase(type) || "Double".equalsIgnoreCase(type)) { - if (example == null) { - example = "3.4"; - } - } else if ("BOOLEAN".equalsIgnoreCase(type) || "bool".equalsIgnoreCase(type)) { - if (example == null) { - example = "True"; - } - } else if ("file".equalsIgnoreCase(type)) { - if (example == null) { - example = "/path/to/file"; - } - example = "'" + escapeText(example) + "'"; - } else if ("Date".equalsIgnoreCase(type)) { - if (example == null) { - example = "2013-10-20"; - } - example = "'" + escapeText(example) + "'"; - } else if ("DateTime".equalsIgnoreCase(type)) { - if (example == null) { - example = "2013-10-20T19:20:30+01:00"; - } - example = "'" + escapeText(example) + "'"; - } else if (!languageSpecificPrimitives.contains(type)) { - // type is a model class, e.g. User - example = this.packageName + "." + type + "()"; - } else { - LOGGER.warn("Type " + type + " not handled properly in setParameterExampleValue"); - } - - if (example == null) { - example = "NULL"; - } else if (Boolean.TRUE.equals(p.isListContainer)) { - example = "[" + example + "]"; - } else if (Boolean.TRUE.equals(p.isMapContainer)) { - example = "{'key': " + example + "}"; - } - - p.example = example; - } - - @Override - public String escapeQuotationMark(String input) { - // remove ' to avoid code injection - return input.replace("'", ""); - } - - @Override - public String escapeUnsafeCharacters(String input) { - // remove multiline comment - return input.replace("'''", "'_'_'"); - } - -} +package io.swagger.codegen.languages; + +import io.swagger.codegen.CliOption; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.CodegenModel; +import io.swagger.codegen.CodegenParameter; +import io.swagger.codegen.CodegenProperty; +import io.swagger.codegen.CodegenType; +import io.swagger.codegen.DefaultCodegen; +import io.swagger.codegen.SupportingFile; +import io.swagger.models.properties.*; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; + +public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig { + public static final String PACKAGE_URL = "packageUrl"; + + protected String packageName; // e.g. petstore_api + protected String packageVersion; + protected String projectName; // for setup.py, e.g. petstore-api + protected String packageUrl; + protected String apiDocPath = "docs/"; + protected String modelDocPath = "docs/"; + + protected Map regexModifiers; + + private String testFolder; + + public PythonClientCodegen() { + super(); + + // clear import mapping (from default generator) as python does not use it + // at the moment + importMapping.clear(); + + modelPackage = "models"; + apiPackage = "api"; + outputFolder = "generated-code" + File.separatorChar + "python"; + + modelTemplateFiles.put("model.mustache", ".py"); + apiTemplateFiles.put("api.mustache", ".py"); + + modelTestTemplateFiles.put("model_test.mustache", ".py"); + apiTestTemplateFiles.put("api_test.mustache", ".py"); + + embeddedTemplateDir = templateDir = "python"; + + modelDocTemplateFiles.put("model_doc.mustache", ".md"); + apiDocTemplateFiles.put("api_doc.mustache", ".md"); + + testFolder = "test"; + + languageSpecificPrimitives.clear(); + languageSpecificPrimitives.add("int"); + languageSpecificPrimitives.add("float"); + languageSpecificPrimitives.add("list"); + languageSpecificPrimitives.add("bool"); + languageSpecificPrimitives.add("str"); + languageSpecificPrimitives.add("datetime"); + languageSpecificPrimitives.add("date"); + languageSpecificPrimitives.add("object"); + + typeMapping.clear(); + typeMapping.put("integer", "int"); + typeMapping.put("float", "float"); + typeMapping.put("number", "float"); + typeMapping.put("long", "int"); + typeMapping.put("double", "float"); + typeMapping.put("array", "list"); + typeMapping.put("map", "dict"); + typeMapping.put("boolean", "bool"); + typeMapping.put("string", "str"); + typeMapping.put("date", "date"); + typeMapping.put("DateTime", "datetime"); + typeMapping.put("object", "object"); + typeMapping.put("file", "file"); + // TODO binary should be mapped to byte array + // mapped to String as a workaround + typeMapping.put("binary", "str"); + typeMapping.put("ByteArray", "str"); + // map uuid to string for the time being + typeMapping.put("UUID", "str"); + + // from https://docs.python.org/release/2.5.4/ref/keywords.html + setReservedWordsLowerCase( + Arrays.asList( + // local variable name used in API methods (endpoints) + "all_params", "resource_path", "path_params", "query_params", + "header_params", "form_params", "local_var_files", "body_params", "auth_settings", + // @property + "property", + // python reserved words + "and", "del", "from", "not", "while", "as", "elif", "global", "or", "with", + "assert", "else", "if", "pass", "yield", "break", "except", "import", + "print", "class", "exec", "in", "raise", "continue", "finally", "is", + "return", "def", "for", "lambda", "try", "self", "None")); + + regexModifiers = new HashMap(); + regexModifiers.put('i', "IGNORECASE"); + regexModifiers.put('l', "LOCALE"); + regexModifiers.put('m', "MULTILINE"); + regexModifiers.put('s', "DOTALL"); + regexModifiers.put('u', "UNICODE"); + regexModifiers.put('x', "VERBOSE"); + + cliOptions.clear(); + cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).") + .defaultValue("swagger_client")); + cliOptions.add(new CliOption(CodegenConstants.PROJECT_NAME, "python project name in setup.py (e.g. petstore-api).")); + cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.") + .defaultValue("1.0.0")); + cliOptions.add(new CliOption(PACKAGE_URL, "python package URL.")); + cliOptions.add(CliOption.newBoolean(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, + CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC).defaultValue(Boolean.TRUE.toString())); + cliOptions.add(new CliOption(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "hides the timestamp when files were generated") + .defaultValue(Boolean.TRUE.toString())); + } + + @Override + public void processOpts() { + super.processOpts(); + Boolean excludeTests = false; + + if(additionalProperties.containsKey(CodegenConstants.EXCLUDE_TESTS)) { + excludeTests = Boolean.valueOf(additionalProperties.get(CodegenConstants.EXCLUDE_TESTS).toString()); + } + + if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { + setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); + } + else { + setPackageName("swagger_client"); + } + + if (additionalProperties.containsKey(CodegenConstants.PROJECT_NAME)) { + setProjectName((String) additionalProperties.get(CodegenConstants.PROJECT_NAME)); + } + else { + // default: set project based on package name + // e.g. petstore_api (package name) => petstore-api (project name) + setProjectName(packageName.replaceAll("_", "-")); + } + + if (additionalProperties.containsKey(CodegenConstants.PACKAGE_VERSION)) { + setPackageVersion((String) additionalProperties.get(CodegenConstants.PACKAGE_VERSION)); + } + else { + setPackageVersion("1.0.0"); + } + + // default HIDE_GENERATION_TIMESTAMP to true + if (!additionalProperties.containsKey(CodegenConstants.HIDE_GENERATION_TIMESTAMP)) { + additionalProperties.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, Boolean.TRUE.toString()); + } else { + additionalProperties.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, + Boolean.valueOf(additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP).toString())); + } + + additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName); + additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); + additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion); + + // make api and model doc path available in mustache template + additionalProperties.put("apiDocPath", apiDocPath); + additionalProperties.put("modelDocPath", modelDocPath); + + if (additionalProperties.containsKey(PACKAGE_URL)) { + setPackageUrl((String) additionalProperties.get(PACKAGE_URL)); + } + + String swaggerFolder = packageName; + + modelPackage = swaggerFolder + File.separatorChar + "models"; + apiPackage = swaggerFolder + File.separatorChar + "apis"; + + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + + supportingFiles.add(new SupportingFile("setup.mustache", "", "setup.py")); + supportingFiles.add(new SupportingFile("tox.mustache", "", "tox.ini")); + supportingFiles.add(new SupportingFile("test-requirements.mustache", "", "test-requirements.txt")); + supportingFiles.add(new SupportingFile("requirements.mustache", "", "requirements.txt")); + + supportingFiles.add(new SupportingFile("api_client.mustache", swaggerFolder, "api_client.py")); + supportingFiles.add(new SupportingFile("rest.mustache", swaggerFolder, "rest.py")); + supportingFiles.add(new SupportingFile("configuration.mustache", swaggerFolder, "configuration.py")); + supportingFiles.add(new SupportingFile("__init__package.mustache", swaggerFolder, "__init__.py")); + supportingFiles.add(new SupportingFile("__init__model.mustache", modelPackage, "__init__.py")); + supportingFiles.add(new SupportingFile("__init__api.mustache", apiPackage, "__init__.py")); + + if(Boolean.FALSE.equals(excludeTests)) { + supportingFiles.add(new SupportingFile("__init__test.mustache", testFolder, "__init__.py")); + } + supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); + supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); + supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml")); + } + + private static String dropDots(String str) { + return str.replaceAll("\\.", "_"); + } + + @Override + public Map postProcessModels(Map objs) { + // process enum in models + return postProcessModelsEnum(objs); + } + + @Override + public void postProcessParameter(CodegenParameter parameter){ + postProcessPattern(parameter.pattern, parameter.vendorExtensions); + } + + @Override + public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { + postProcessPattern(property.pattern, property.vendorExtensions); + } + + /* + * The swagger pattern spec follows the Perl convention and style of modifiers. Python + * does not support this in as natural a way so it needs to convert it. See + * https://docs.python.org/2/howto/regex.html#compilation-flags for details. + */ + public void postProcessPattern(String pattern, Map vendorExtensions){ + if(pattern != null) { + int i = pattern.lastIndexOf('/'); + + //Must follow Perl /pattern/modifiers convention + if(pattern.charAt(0) != '/' || i < 2) { + throw new IllegalArgumentException("Pattern must follow the Perl " + + "/pattern/modifiers convention. "+pattern+" is not valid."); + } + + String regex = pattern.substring(1, i).replace("'", "\\'"); + List modifiers = new ArrayList(); + + for(char c : pattern.substring(i).toCharArray()) { + if(regexModifiers.containsKey(c)) { + String modifier = regexModifiers.get(c); + modifiers.add(modifier); + } + } + + vendorExtensions.put("x-regex", regex); + vendorExtensions.put("x-modifiers", modifiers); + } + } + + @Override + public CodegenType getTag() { + return CodegenType.CLIENT; + } + + @Override + public String getName() { + return "python"; + } + + @Override + public String getHelp() { + return "Generates a Python client library."; + } + + @Override + public String escapeReservedWord(String name) { + if(this.reservedWordsMappings().containsKey(name)) { + return this.reservedWordsMappings().get(name); + } + return "_" + name; + } + + @Override + public String apiDocFileFolder() { + return (outputFolder + "/" + apiDocPath); + } + + @Override + public String modelDocFileFolder() { + return (outputFolder + "/" + modelDocPath); + } + + @Override + public String toModelDocFilename(String name) { + return toModelName(name); + } + + @Override + public String toApiDocFilename(String name) { + return toApiName(name); + } + + + @Override + public String apiFileFolder() { + return outputFolder + File.separatorChar + apiPackage().replace('.', File.separatorChar); + } + + @Override + public String modelFileFolder() { + return outputFolder + File.separatorChar + modelPackage().replace('.', File.separatorChar); + } + + @Override + public String apiTestFileFolder() { + return outputFolder + File.separatorChar + testFolder; + } + + @Override + public String modelTestFileFolder() { + return outputFolder + File.separatorChar + testFolder; + } + + @Override + public String getTypeDeclaration(Property p) { + if (p instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) p; + Property inner = ap.getItems(); + return getSwaggerType(p) + "[" + getTypeDeclaration(inner) + "]"; + } else if (p instanceof MapProperty) { + MapProperty mp = (MapProperty) p; + Property inner = mp.getAdditionalProperties(); + + return getSwaggerType(p) + "(str, " + getTypeDeclaration(inner) + ")"; + } + return super.getTypeDeclaration(p); + } + + @Override + public String getSwaggerType(Property p) { + String swaggerType = super.getSwaggerType(p); + String type = null; + if (typeMapping.containsKey(swaggerType)) { + type = typeMapping.get(swaggerType); + if (languageSpecificPrimitives.contains(type)) { + return type; + } + } else { + type = toModelName(swaggerType); + } + return type; + } + + @Override + public String toVarName(String name) { + // sanitize name + name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + + // remove dollar sign + name = name.replaceAll("$", ""); + + // if it's all uppper case, convert to lower case + if (name.matches("^[A-Z_]*$")) { + name = name.toLowerCase(); + } + + // underscore the variable name + // petId => pet_id + name = underscore(name); + + // remove leading underscore + name = name.replaceAll("^_*", ""); + + // for reserved word or word starting with number, append _ + if (isReservedWord(name) || name.matches("^\\d.*")) { + name = escapeReservedWord(name); + } + + return name; + } + + @Override + public String toParamName(String name) { + // to avoid conflicts with 'callback' parameter for async call + if ("callback".equals(name)) { + return "param_callback"; + } + + // should be the same as variable name + return toVarName(name); + } + + @Override + public String toModelName(String name) { + name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + // remove dollar sign + name = name.replaceAll("$", ""); + + // model name cannot use reserved keyword, e.g. return + if (isReservedWord(name)) { + LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) + } + + // model name starts with number + if (name.matches("^\\d.*")) { + LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) + } + + if (!StringUtils.isEmpty(modelNamePrefix)) { + name = modelNamePrefix + "_" + name; + } + + if (!StringUtils.isEmpty(modelNameSuffix)) { + name = name + "_" + modelNameSuffix; + } + + // camelize the model name + // phone_number => PhoneNumber + return camelize(name); + } + + @Override + public String toModelFilename(String name) { + name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + // remove dollar sign + name = name.replaceAll("$", ""); + + // model name cannot use reserved keyword, e.g. return + if (isReservedWord(name)) { + LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + underscore(dropDots("model_" + name))); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) + } + + // model name starts with number + if (name.matches("^\\d.*")) { + LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + underscore("model_" + name)); + name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) + } + + if (!StringUtils.isEmpty(modelNamePrefix)) { + name = modelNamePrefix + "_" + name; + } + + if (!StringUtils.isEmpty(modelNameSuffix)) { + name = name + "_" + modelNameSuffix; + } + + // underscore the model file name + // PhoneNumber => phone_number + return underscore(dropDots(name)); + } + + @Override + public String toModelTestFilename(String name) { + return "test_" + toModelFilename(name); + } + + @Override + public String toApiFilename(String name) { + // replace - with _ e.g. created-at => created_at + name = name.replaceAll("-", "_"); + + // e.g. PhoneNumberApi.rb => phone_number_api.rb + return underscore(name) + "_api"; + } + + @Override + public String toApiTestFilename(String name) { + return "test_" + toApiFilename(name); + } + + @Override + public String toApiName(String name) { + if (name.length() == 0) { + return "DefaultApi"; + } + // e.g. phone_number_api => PhoneNumberApi + return camelize(name) + "Api"; + } + + @Override + public String toApiVarName(String name) { + if (name.length() == 0) { + return "default_api"; + } + return underscore(name) + "_api"; + } + + @Override + public String toOperationId(String operationId) { + // throw exception if method name is empty (should not occur as an auto-generated method name will be used) + if (StringUtils.isEmpty(operationId)) { + throw new RuntimeException("Empty method name (operationId) not allowed"); + } + + // method name cannot use reserved keyword, e.g. return + if (isReservedWord(operationId)) { + LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + underscore(sanitizeName("call_" + operationId))); + operationId = "call_" + operationId; + } + + return underscore(sanitizeName(operationId)); + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public void setProjectName(String projectName) { + this.projectName= projectName; + } + + public void setPackageVersion(String packageVersion) { + this.packageVersion = packageVersion; + } + + public void setPackageUrl(String packageUrl) { + this.packageUrl = packageUrl; + } + + /** + * Generate Python package name from String `packageName` + * + * (PEP 0008) Python packages should also have short, all-lowercase names, + * although the use of underscores is discouraged. + * + * @param packageName Package name + * @return Python package name that conforms to PEP 0008 + */ + @SuppressWarnings("static-method") + public String generatePackageName(String packageName) { + return underscore(packageName.replaceAll("[^\\w]+", "")); + } + + /** + * Return the default value of the property + * + * @param p Swagger property object + * @return string presentation of the default value of the property + */ + @Override + public String toDefaultValue(Property p) { + if (p instanceof StringProperty) { + StringProperty dp = (StringProperty) p; + if (dp.getDefault() != null) { + if (Pattern.compile("\r\n|\r|\n").matcher(dp.getDefault()).find()) + return "'''" + dp.getDefault() + "'''"; + else + return "'" + dp.getDefault() + "'"; + } + } else if (p instanceof BooleanProperty) { + BooleanProperty dp = (BooleanProperty) p; + if (dp.getDefault() != null) { + if (dp.getDefault().toString().equalsIgnoreCase("false")) + return "False"; + else + return "True"; + } + } else if (p instanceof DateProperty) { + // TODO + } else if (p instanceof DateTimeProperty) { + // TODO + } else if (p instanceof DoubleProperty) { + DoubleProperty dp = (DoubleProperty) p; + if (dp.getDefault() != null) { + return dp.getDefault().toString(); + } + } else if (p instanceof FloatProperty) { + FloatProperty dp = (FloatProperty) p; + if (dp.getDefault() != null) { + return dp.getDefault().toString(); + } + } else if (p instanceof IntegerProperty) { + IntegerProperty dp = (IntegerProperty) p; + if (dp.getDefault() != null) { + return dp.getDefault().toString(); + } + } else if (p instanceof LongProperty) { + LongProperty dp = (LongProperty) p; + if (dp.getDefault() != null) { + return dp.getDefault().toString(); + } + } + + return null; + } + + @Override + public void setParameterExampleValue(CodegenParameter p) { + String example; + + if (p.defaultValue == null) { + example = p.example; + } else { + example = p.defaultValue; + } + + String type = p.baseType; + if (type == null) { + type = p.dataType; + } + + if ("String".equalsIgnoreCase(type) || "str".equalsIgnoreCase(type)) { + if (example == null) { + example = p.paramName + "_example"; + } + example = "'" + escapeText(example) + "'"; + } else if ("Integer".equals(type) || "int".equals(type)) { + if (example == null) { + example = "56"; + } + } else if ("Float".equalsIgnoreCase(type) || "Double".equalsIgnoreCase(type)) { + if (example == null) { + example = "3.4"; + } + } else if ("BOOLEAN".equalsIgnoreCase(type) || "bool".equalsIgnoreCase(type)) { + if (example == null) { + example = "True"; + } + } else if ("file".equalsIgnoreCase(type)) { + if (example == null) { + example = "/path/to/file"; + } + example = "'" + escapeText(example) + "'"; + } else if ("Date".equalsIgnoreCase(type)) { + if (example == null) { + example = "2013-10-20"; + } + example = "'" + escapeText(example) + "'"; + } else if ("DateTime".equalsIgnoreCase(type)) { + if (example == null) { + example = "2013-10-20T19:20:30+01:00"; + } + example = "'" + escapeText(example) + "'"; + } else if (!languageSpecificPrimitives.contains(type)) { + // type is a model class, e.g. User + example = this.packageName + "." + type + "()"; + } else { + LOGGER.warn("Type " + type + " not handled properly in setParameterExampleValue"); + } + + if (example == null) { + example = "NULL"; + } else if (Boolean.TRUE.equals(p.isListContainer)) { + example = "[" + example + "]"; + } else if (Boolean.TRUE.equals(p.isMapContainer)) { + example = "{'key': " + example + "}"; + } + + p.example = example; + } + + @Override + public String escapeQuotationMark(String input) { + // remove ' to avoid code injection + return input.replace("'", ""); + } + + @Override + public String escapeUnsafeCharacters(String input) { + // remove multiline comment + return input.replace("'''", "'_'_'"); + } + +} diff --git a/modules/swagger-codegen/src/main/resources/python/README.mustache b/modules/swagger-codegen/src/main/resources/python/README.mustache index 9f432447443..c1355be7784 100644 --- a/modules/swagger-codegen/src/main/resources/python/README.mustache +++ b/modules/swagger-codegen/src/main/resources/python/README.mustache @@ -1,4 +1,4 @@ -# {{packageName}} +# {{{projectName}}} {{#appDescription}} {{{appDescription}}} {{/appDescription}} diff --git a/modules/swagger-codegen/src/main/resources/python/setup.mustache b/modules/swagger-codegen/src/main/resources/python/setup.mustache index 6a1a4320f38..6fc7f198d15 100644 --- a/modules/swagger-codegen/src/main/resources/python/setup.mustache +++ b/modules/swagger-codegen/src/main/resources/python/setup.mustache @@ -5,7 +5,7 @@ import sys from setuptools import setup, find_packages -NAME = "{{packageName}}" +NAME = "{{{projectName}}}" VERSION = "{{packageVersion}}" {{#apiInfo}} {{#apis}} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/PythonClientOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/PythonClientOptionsProvider.java index 7ad1a05752a..262c312e563 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/PythonClientOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/PythonClientOptionsProvider.java @@ -9,6 +9,7 @@ import java.util.Map; public class PythonClientOptionsProvider implements OptionsProvider { public static final String PACKAGE_NAME_VALUE = "swagger_client_python"; + public static final String PROJECT_NAME_VALUE = "swagger-client-python"; public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT"; public static final String PACKAGE_URL_VALUE = ""; @@ -22,6 +23,7 @@ public class PythonClientOptionsProvider implements OptionsProvider { ImmutableMap.Builder builder = new ImmutableMap.Builder(); return builder.put(PythonClientCodegen.PACKAGE_URL, PACKAGE_URL_VALUE) .put(CodegenConstants.PACKAGE_NAME, PACKAGE_NAME_VALUE) + .put(CodegenConstants.PROJECT_NAME, PROJECT_NAME_VALUE) .put(CodegenConstants.PACKAGE_VERSION, PACKAGE_VERSION_VALUE) .put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true") .put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "true") diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/python/PythonClientOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/python/PythonClientOptionsTest.java index 80fc53ac993..8529ea0c97d 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/python/PythonClientOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/python/PythonClientOptionsTest.java @@ -28,6 +28,8 @@ public class PythonClientOptionsTest extends AbstractOptionsTest { new Expectations(clientCodegen) {{ clientCodegen.setPackageName(PythonClientOptionsProvider.PACKAGE_NAME_VALUE); times = 1; + clientCodegen.setProjectName(PythonClientOptionsProvider.PROJECT_NAME_VALUE); + times = 1; clientCodegen.setPackageVersion(PythonClientOptionsProvider.PACKAGE_VERSION_VALUE); times = 1; clientCodegen.setPackageUrl(PythonClientOptionsProvider.PACKAGE_URL_VALUE); diff --git a/samples/client/petstore/python/README.md b/samples/client/petstore/python/README.md index f10eb1d595e..8559584e01b 100644 --- a/samples/client/petstore/python/README.md +++ b/samples/client/petstore/python/README.md @@ -1,4 +1,4 @@ -# petstore_api +# petstore-api This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: diff --git a/samples/client/petstore/python/setup.py b/samples/client/petstore/python/setup.py index 70fc36e144d..187e1b1636f 100644 --- a/samples/client/petstore/python/setup.py +++ b/samples/client/petstore/python/setup.py @@ -14,7 +14,7 @@ import sys from setuptools import setup, find_packages -NAME = "petstore_api" +NAME = "petstore-api" VERSION = "1.0.0" # To install the library, run the following # From b288991c6c813048d53e43e7508e2c89f1d24284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?= Date: Tue, 13 Jun 2017 18:41:53 +0200 Subject: [PATCH 03/17] Updating samples for csharp. (#5822) --- .../.swagger-codegen/VERSION | 1 + .../SwaggerClientNetCoreProject/README.md | 7 +- .../docs/FakeApi.md | 7 - .../docs/OuterBoolean.md | 8 + .../docs/OuterComposite.md | 11 ++ .../docs/OuterNumber.md | 8 + .../docs/OuterString.md | 8 + .../docs/PetApi.md | 8 - .../docs/StoreApi.md | 4 - .../docs/UserApi.md | 8 - .../src/IO.Swagger/Api/FakeApi.cs | 8 - .../IO.Swagger/Client/SwaggerDateConverter.cs | 30 ++++ .../Model/AdditionalPropertiesClass.cs | 3 + .../src/IO.Swagger/Model/Animal.cs | 3 + .../src/IO.Swagger/Model/AnimalFarm.cs | 1 + .../src/IO.Swagger/Model/ApiResponse.cs | 4 + .../Model/ArrayOfArrayOfNumberOnly.cs | 2 + .../src/IO.Swagger/Model/ArrayOfNumberOnly.cs | 2 + .../src/IO.Swagger/Model/ArrayTest.cs | 4 + .../src/IO.Swagger/Model/Capitalization.cs | 7 + .../src/IO.Swagger/Model/Cat.cs | 4 + .../src/IO.Swagger/Model/Category.cs | 3 + .../src/IO.Swagger/Model/ClassModel.cs | 2 + .../src/IO.Swagger/Model/Dog.cs | 4 + .../src/IO.Swagger/Model/EnumArrays.cs | 3 + .../src/IO.Swagger/Model/EnumClass.cs | 1 + .../src/IO.Swagger/Model/EnumTest.cs | 5 + .../src/IO.Swagger/Model/FormatTest.cs | 15 ++ .../src/IO.Swagger/Model/HasOnlyReadOnly.cs | 3 + .../src/IO.Swagger/Model/List.cs | 2 + .../src/IO.Swagger/Model/MapTest.cs | 3 + ...dPropertiesAndAdditionalPropertiesClass.cs | 4 + .../src/IO.Swagger/Model/Model200Response.cs | 3 + .../src/IO.Swagger/Model/ModelClient.cs | 2 + .../src/IO.Swagger/Model/ModelReturn.cs | 2 + .../src/IO.Swagger/Model/Name.cs | 5 + .../src/IO.Swagger/Model/NumberOnly.cs | 2 + .../src/IO.Swagger/Model/Order.cs | 7 + .../src/IO.Swagger/Model/OuterBoolean.cs | 101 ++++++++++++ .../src/IO.Swagger/Model/OuterComposite.cs | 148 ++++++++++++++++++ .../src/IO.Swagger/Model/OuterEnum.cs | 1 + .../src/IO.Swagger/Model/OuterNumber.cs | 101 ++++++++++++ .../src/IO.Swagger/Model/OuterString.cs | 101 ++++++++++++ .../src/IO.Swagger/Model/Pet.cs | 7 + .../src/IO.Swagger/Model/ReadOnlyFirst.cs | 3 + .../src/IO.Swagger/Model/SpecialModelName.cs | 2 + .../src/IO.Swagger/Model/Tag.cs | 3 + .../src/IO.Swagger/Model/User.cs | 9 ++ 48 files changed, 642 insertions(+), 38 deletions(-) create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterBoolean.md create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterComposite.md create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterNumber.md create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterString.md create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Client/SwaggerDateConverter.cs create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterBoolean.cs create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterComposite.cs create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterNumber.cs create mode 100644 samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterString.cs diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/.swagger-codegen/VERSION b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/README.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/README.md index 2ffa0ef9f64..3af054e72a1 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/README.md +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/README.md @@ -47,7 +47,7 @@ namespace Example { public void main() { - + var apiInstance = new FakeApi(); var body = new OuterBoolean(); // OuterBoolean | Input boolean as post body (optional) @@ -60,6 +60,7 @@ namespace Example { Debug.Print("Exception when calling FakeApi.FakeOuterBooleanSerialize: " + e.Message ); } + } } } @@ -112,10 +113,8 @@ Class | Method | HTTP request | Description - [Model.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) - [Model.ArrayTest](docs/ArrayTest.md) - [Model.Capitalization](docs/Capitalization.md) - - [Model.Cat](docs/Cat.md) - [Model.Category](docs/Category.md) - [Model.ClassModel](docs/ClassModel.md) - - [Model.Dog](docs/Dog.md) - [Model.EnumArrays](docs/EnumArrays.md) - [Model.EnumClass](docs/EnumClass.md) - [Model.EnumTest](docs/EnumTest.md) @@ -140,6 +139,8 @@ Class | Method | HTTP request | Description - [Model.SpecialModelName](docs/SpecialModelName.md) - [Model.Tag](docs/Tag.md) - [Model.User](docs/User.md) + - [Model.Cat](docs/Cat.md) + - [Model.Dog](docs/Dog.md) diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/FakeApi.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/FakeApi.md index 1277461eb1d..41bddd87b49 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/FakeApi.md +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/FakeApi.md @@ -35,7 +35,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var body = new OuterBoolean(); // OuterBoolean | Input boolean as post body (optional) @@ -96,7 +95,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var body = new OuterComposite(); // OuterComposite | Input composite as post body (optional) @@ -157,7 +155,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var body = new OuterNumber(); // OuterNumber | Input number as post body (optional) @@ -218,7 +215,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var body = new OuterString(); // OuterString | Input string as post body (optional) @@ -279,7 +275,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var body = new ModelClient(); // ModelClient | client model @@ -341,7 +336,6 @@ namespace Example { public void main() { - // Configure HTTP basic authorization: http_basic_test Configuration.Default.Username = "YOUR_USERNAME"; Configuration.Default.Password = "YOUR_PASSWORD"; @@ -432,7 +426,6 @@ namespace Example { public void main() { - var apiInstance = new FakeApi(); var enumFormStringArray = new List(); // List | Form parameter enum test (string array) (optional) var enumFormString = enumFormString_example; // string | Form parameter enum test (string) (optional) (default to -efg) diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterBoolean.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterBoolean.md new file mode 100644 index 00000000000..84845b35e54 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterBoolean.md @@ -0,0 +1,8 @@ +# IO.Swagger.Model.OuterBoolean +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterComposite.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterComposite.md new file mode 100644 index 00000000000..41fae66f136 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterComposite.md @@ -0,0 +1,11 @@ +# IO.Swagger.Model.OuterComposite +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**MyNumber** | [**OuterNumber**](OuterNumber.md) | | [optional] +**MyString** | [**OuterString**](OuterString.md) | | [optional] +**MyBoolean** | [**OuterBoolean**](OuterBoolean.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterNumber.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterNumber.md new file mode 100644 index 00000000000..7c88274d6ee --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterNumber.md @@ -0,0 +1,8 @@ +# IO.Swagger.Model.OuterNumber +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterString.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterString.md new file mode 100644 index 00000000000..524423a5dab --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/OuterString.md @@ -0,0 +1,8 @@ +# IO.Swagger.Model.OuterString +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/PetApi.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/PetApi.md index f3f49f5ed5b..148d49b8b88 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/PetApi.md +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/PetApi.md @@ -36,7 +36,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -100,7 +99,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -166,7 +164,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -231,7 +228,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -296,7 +292,6 @@ namespace Example { public void main() { - // Configure API key authorization: api_key Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY"); // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed @@ -363,7 +358,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -427,7 +421,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; @@ -495,7 +488,6 @@ namespace Example { public void main() { - // Configure OAuth2 access token for authorization: petstore_auth Configuration.Default.AccessToken = "YOUR_ACCESS_TOKEN"; diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/StoreApi.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/StoreApi.md index bf2fdb1ed6d..1509a03158f 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/StoreApi.md +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/StoreApi.md @@ -32,7 +32,6 @@ namespace Example { public void main() { - var apiInstance = new StoreApi(); var orderId = orderId_example; // string | ID of the order that needs to be deleted @@ -93,7 +92,6 @@ namespace Example { public void main() { - // Configure API key authorization: api_key Configuration.Default.ApiKey.Add("api_key", "YOUR_API_KEY"); // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed @@ -156,7 +154,6 @@ namespace Example { public void main() { - var apiInstance = new StoreApi(); var orderId = 789; // long? | ID of pet that needs to be fetched @@ -218,7 +215,6 @@ namespace Example { public void main() { - var apiInstance = new StoreApi(); var body = new Order(); // Order | order placed for purchasing the pet diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/UserApi.md b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/UserApi.md index 78553f5b385..0ddde3f669c 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/UserApi.md +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/docs/UserApi.md @@ -36,7 +36,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var body = new User(); // User | Created user object @@ -97,7 +96,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var body = new List(); // List | List of user object @@ -158,7 +156,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var body = new List(); // List | List of user object @@ -219,7 +216,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var username = username_example; // string | The name that needs to be deleted @@ -280,7 +276,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var username = username_example; // string | The name that needs to be fetched. Use user1 for testing. @@ -342,7 +337,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var username = username_example; // string | The user name for login var password = password_example; // string | The password for login in clear text @@ -406,7 +400,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); try @@ -463,7 +456,6 @@ namespace Example { public void main() { - var apiInstance = new UserApi(); var username = username_example; // string | name that need to be deleted var body = new User(); // User | Updated user object diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Api/FakeApi.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Api/FakeApi.cs index dff670d8a6c..ea748e60f0c 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Api/FakeApi.cs @@ -579,7 +579,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterBoolean) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterBoolean))); - } /// @@ -650,7 +649,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterBoolean) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterBoolean))); - } /// @@ -720,7 +718,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterComposite) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterComposite))); - } /// @@ -791,7 +788,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterComposite) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterComposite))); - } /// @@ -861,7 +857,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterNumber) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterNumber))); - } /// @@ -932,7 +927,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterNumber) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterNumber))); - } /// @@ -1002,7 +996,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterString) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterString))); - } /// @@ -1073,7 +1066,6 @@ namespace IO.Swagger.Api return new ApiResponse(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Key, x => x.Value.ToString()), (OuterString) Configuration.ApiClient.Deserialize(localVarResponse, typeof(OuterString))); - } /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Client/SwaggerDateConverter.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Client/SwaggerDateConverter.cs new file mode 100644 index 00000000000..82b825423dc --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Client/SwaggerDateConverter.cs @@ -0,0 +1,30 @@ +/* + * Swagger Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using Newtonsoft.Json.Converters; + +namespace IO.Swagger.Client +{ + /// + /// Formatter for 'date' swagger formats ss defined by full-date - RFC3339 + /// see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types + /// + public class SwaggerDateConverter : IsoDateTimeConverter + { + /// + /// Initializes a new instance of the class. + /// + public SwaggerDateConverter() + { + // full-date = date-fullyear "-" date-month "-" date-mday + DateTimeFormat = "yyyy-MM-dd"; + } + } +} diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AdditionalPropertiesClass.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AdditionalPropertiesClass.cs index abbd4946d5c..59577230d54 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AdditionalPropertiesClass.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AdditionalPropertiesClass.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -43,11 +44,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="map_property", EmitDefaultValue=false)] public Dictionary MapProperty { get; set; } + /// /// Gets or Sets MapOfMapProperty /// [DataMember(Name="map_of_map_property", EmitDefaultValue=false)] public Dictionary> MapOfMapProperty { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Animal.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Animal.cs index b5deb62a3d4..e4ae9421f2f 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Animal.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Animal.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -64,11 +65,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="className", EmitDefaultValue=false)] public string ClassName { get; set; } + /// /// Gets or Sets Color /// [DataMember(Name="color", EmitDefaultValue=false)] public string Color { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AnimalFarm.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AnimalFarm.cs index 46726bb5c73..d5346938104 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AnimalFarm.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/AnimalFarm.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ApiResponse.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ApiResponse.cs index fa69627c29d..68b19d43626 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ApiResponse.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ApiResponse.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -45,16 +46,19 @@ namespace IO.Swagger.Model /// [DataMember(Name="code", EmitDefaultValue=false)] public int? Code { get; set; } + /// /// Gets or Sets Type /// [DataMember(Name="type", EmitDefaultValue=false)] public string Type { get; set; } + /// /// Gets or Sets Message /// [DataMember(Name="message", EmitDefaultValue=false)] public string Message { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfArrayOfNumberOnly.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfArrayOfNumberOnly.cs index af0261d185d..630fcea77fd 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfArrayOfNumberOnly.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfArrayOfNumberOnly.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="ArrayArrayNumber", EmitDefaultValue=false)] public List> ArrayArrayNumber { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfNumberOnly.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfNumberOnly.cs index 8e20ad3b36d..c2a07e17a2b 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfNumberOnly.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayOfNumberOnly.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="ArrayNumber", EmitDefaultValue=false)] public List ArrayNumber { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayTest.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayTest.cs index df50f57e3b1..36f253aa225 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayTest.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ArrayTest.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -45,16 +46,19 @@ namespace IO.Swagger.Model /// [DataMember(Name="array_of_string", EmitDefaultValue=false)] public List ArrayOfString { get; set; } + /// /// Gets or Sets ArrayArrayOfInteger /// [DataMember(Name="array_array_of_integer", EmitDefaultValue=false)] public List> ArrayArrayOfInteger { get; set; } + /// /// Gets or Sets ArrayArrayOfModel /// [DataMember(Name="array_array_of_model", EmitDefaultValue=false)] public List> ArrayArrayOfModel { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Capitalization.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Capitalization.cs index f4fc45d584d..82df0116140 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Capitalization.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Capitalization.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -51,32 +52,38 @@ namespace IO.Swagger.Model /// [DataMember(Name="smallCamel", EmitDefaultValue=false)] public string SmallCamel { get; set; } + /// /// Gets or Sets CapitalCamel /// [DataMember(Name="CapitalCamel", EmitDefaultValue=false)] public string CapitalCamel { get; set; } + /// /// Gets or Sets SmallSnake /// [DataMember(Name="small_Snake", EmitDefaultValue=false)] public string SmallSnake { get; set; } + /// /// Gets or Sets CapitalSnake /// [DataMember(Name="Capital_Snake", EmitDefaultValue=false)] public string CapitalSnake { get; set; } + /// /// Gets or Sets SCAETHFlowPoints /// [DataMember(Name="SCA_ETH_Flow_Points", EmitDefaultValue=false)] public string SCAETHFlowPoints { get; set; } + /// /// Name of the pet /// /// Name of the pet [DataMember(Name="ATT_NAME", EmitDefaultValue=false)] public string ATT_NAME { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Cat.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Cat.cs index 4507cb84797..027b7eb2bf9 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Cat.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Cat.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -66,16 +67,19 @@ namespace IO.Swagger.Model /// [DataMember(Name="className", EmitDefaultValue=false)] public string ClassName { get; set; } + /// /// Gets or Sets Color /// [DataMember(Name="color", EmitDefaultValue=false)] public string Color { get; set; } + /// /// Gets or Sets Declawed /// [DataMember(Name="declawed", EmitDefaultValue=false)] public bool? Declawed { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Category.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Category.cs index 24af926ed4e..e705f2923d2 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Category.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Category.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -43,11 +44,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="id", EmitDefaultValue=false)] public long? Id { get; set; } + /// /// Gets or Sets Name /// [DataMember(Name="name", EmitDefaultValue=false)] public string Name { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ClassModel.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ClassModel.cs index c5846909511..838c4e1df18 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ClassModel.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ClassModel.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="_class", EmitDefaultValue=false)] public string _Class { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Dog.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Dog.cs index 9efa2b27476..092fdc74b0e 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Dog.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Dog.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -66,16 +67,19 @@ namespace IO.Swagger.Model /// [DataMember(Name="className", EmitDefaultValue=false)] public string ClassName { get; set; } + /// /// Gets or Sets Color /// [DataMember(Name="color", EmitDefaultValue=false)] public string Color { get; set; } + /// /// Gets or Sets Breed /// [DataMember(Name="breed", EmitDefaultValue=false)] public string Breed { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumArrays.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumArrays.cs index a7e1844d2cd..5ba20e6f75a 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumArrays.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumArrays.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -89,6 +90,8 @@ namespace IO.Swagger.Model this.ArrayEnum = ArrayEnum; } + + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumClass.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumClass.cs index cbabcb69da4..33b2a87cb94 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumClass.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumClass.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumTest.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumTest.cs index 61180e59ff3..86bbd995b70 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumTest.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/EnumTest.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -123,11 +124,15 @@ namespace IO.Swagger.Model this.OuterEnum = OuterEnum; } + + + /// /// Gets or Sets OuterEnum /// [DataMember(Name="outerEnum", EmitDefaultValue=false)] public OuterEnum OuterEnum { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/FormatTest.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/FormatTest.cs index ee866b6352b..3a447d57242 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/FormatTest.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/FormatTest.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -102,66 +103,80 @@ namespace IO.Swagger.Model /// [DataMember(Name="integer", EmitDefaultValue=false)] public int? Integer { get; set; } + /// /// Gets or Sets Int32 /// [DataMember(Name="int32", EmitDefaultValue=false)] public int? Int32 { get; set; } + /// /// Gets or Sets Int64 /// [DataMember(Name="int64", EmitDefaultValue=false)] public long? Int64 { get; set; } + /// /// Gets or Sets Number /// [DataMember(Name="number", EmitDefaultValue=false)] public decimal? Number { get; set; } + /// /// Gets or Sets _Float /// [DataMember(Name="float", EmitDefaultValue=false)] public float? _Float { get; set; } + /// /// Gets or Sets _Double /// [DataMember(Name="double", EmitDefaultValue=false)] public double? _Double { get; set; } + /// /// Gets or Sets _String /// [DataMember(Name="string", EmitDefaultValue=false)] public string _String { get; set; } + /// /// Gets or Sets _Byte /// [DataMember(Name="byte", EmitDefaultValue=false)] public byte[] _Byte { get; set; } + /// /// Gets or Sets Binary /// [DataMember(Name="binary", EmitDefaultValue=false)] public byte[] Binary { get; set; } + /// /// Gets or Sets Date /// [DataMember(Name="date", EmitDefaultValue=false)] + [JsonConverter(typeof(SwaggerDateConverter))] public DateTime? Date { get; set; } + /// /// Gets or Sets DateTime /// [DataMember(Name="dateTime", EmitDefaultValue=false)] public DateTime? DateTime { get; set; } + /// /// Gets or Sets Uuid /// [DataMember(Name="uuid", EmitDefaultValue=false)] public Guid? Uuid { get; set; } + /// /// Gets or Sets Password /// [DataMember(Name="password", EmitDefaultValue=false)] public string Password { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/HasOnlyReadOnly.cs index ec193d2d3ec..b03e05d8c1b 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/HasOnlyReadOnly.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/HasOnlyReadOnly.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -40,11 +41,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="bar", EmitDefaultValue=false)] public string Bar { get; private set; } + /// /// Gets or Sets Foo /// [DataMember(Name="foo", EmitDefaultValue=false)] public string Foo { get; private set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/List.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/List.cs index bd84d3461c2..b703a1399d2 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/List.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/List.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="123-list", EmitDefaultValue=false)] public string _123List { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MapTest.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MapTest.cs index 7f12eb1bce4..e6777d51cee 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MapTest.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MapTest.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -69,6 +70,8 @@ namespace IO.Swagger.Model /// [DataMember(Name="map_map_of_string", EmitDefaultValue=false)] public Dictionary> MapMapOfString { get; set; } + + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MixedPropertiesAndAdditionalPropertiesClass.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MixedPropertiesAndAdditionalPropertiesClass.cs index 65f176b799e..099c16428d9 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MixedPropertiesAndAdditionalPropertiesClass.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/MixedPropertiesAndAdditionalPropertiesClass.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -45,16 +46,19 @@ namespace IO.Swagger.Model /// [DataMember(Name="uuid", EmitDefaultValue=false)] public Guid? Uuid { get; set; } + /// /// Gets or Sets DateTime /// [DataMember(Name="dateTime", EmitDefaultValue=false)] public DateTime? DateTime { get; set; } + /// /// Gets or Sets Map /// [DataMember(Name="map", EmitDefaultValue=false)] public Dictionary Map { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Model200Response.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Model200Response.cs index d585e0a6711..645976249c3 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Model200Response.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Model200Response.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -43,11 +44,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="name", EmitDefaultValue=false)] public int? Name { get; set; } + /// /// Gets or Sets _Class /// [DataMember(Name="class", EmitDefaultValue=false)] public string _Class { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelClient.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelClient.cs index 7a16ba2ab74..4fe4bd210aa 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelClient.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelClient.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="client", EmitDefaultValue=false)] public string _Client { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelReturn.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelReturn.cs index 902d8e8c4ad..e53a25cfbc9 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelReturn.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ModelReturn.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="return", EmitDefaultValue=false)] public int? _Return { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Name.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Name.cs index a34536c76ef..472df10fb4b 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Name.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Name.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -56,21 +57,25 @@ namespace IO.Swagger.Model /// [DataMember(Name="name", EmitDefaultValue=false)] public int? _Name { get; set; } + /// /// Gets or Sets SnakeCase /// [DataMember(Name="snake_case", EmitDefaultValue=false)] public int? SnakeCase { get; private set; } + /// /// Gets or Sets Property /// [DataMember(Name="property", EmitDefaultValue=false)] public string Property { get; set; } + /// /// Gets or Sets _123Number /// [DataMember(Name="123Number", EmitDefaultValue=false)] public int? _123Number { get; private set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/NumberOnly.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/NumberOnly.cs index 82837173db0..bdde2701e68 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/NumberOnly.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/NumberOnly.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="JustNumber", EmitDefaultValue=false)] public decimal? JustNumber { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Order.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Order.cs index 91f7f018e13..351e0e1eccc 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Order.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Order.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -92,26 +93,32 @@ namespace IO.Swagger.Model /// [DataMember(Name="id", EmitDefaultValue=false)] public long? Id { get; set; } + /// /// Gets or Sets PetId /// [DataMember(Name="petId", EmitDefaultValue=false)] public long? PetId { get; set; } + /// /// Gets or Sets Quantity /// [DataMember(Name="quantity", EmitDefaultValue=false)] public int? Quantity { get; set; } + /// /// Gets or Sets ShipDate /// [DataMember(Name="shipDate", EmitDefaultValue=false)] public DateTime? ShipDate { get; set; } + + /// /// Gets or Sets Complete /// [DataMember(Name="complete", EmitDefaultValue=false)] public bool? Complete { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterBoolean.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterBoolean.cs new file mode 100644 index 00000000000..2b874aa2c3c --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterBoolean.cs @@ -0,0 +1,101 @@ +/* + * Swagger Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; + +namespace IO.Swagger.Model +{ + /// + /// OuterBoolean + /// + [DataContract] + public partial class OuterBoolean : IEquatable + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public OuterBoolean() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class OuterBoolean {\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object obj) + { + // credit: http://stackoverflow.com/a/10454552/677735 + return this.Equals(obj as OuterBoolean); + } + + /// + /// Returns true if OuterBoolean instances are equal + /// + /// Instance of OuterBoolean to be compared + /// Boolean + public bool Equals(OuterBoolean other) + { + // credit: http://stackoverflow.com/a/10454552/677735 + if (other == null) + return false; + + return false; + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + // credit: http://stackoverflow.com/a/263416/677735 + unchecked // Overflow is fine, just wrap + { + int hash = 41; + // Suitable nullity checks etc, of course :) + return hash; + } + } + } + +} diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterComposite.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterComposite.cs new file mode 100644 index 00000000000..5856368edc9 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterComposite.cs @@ -0,0 +1,148 @@ +/* + * Swagger Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; + +namespace IO.Swagger.Model +{ + /// + /// OuterComposite + /// + [DataContract] + public partial class OuterComposite : IEquatable + { + /// + /// Initializes a new instance of the class. + /// + /// MyNumber. + /// MyString. + /// MyBoolean. + public OuterComposite(OuterNumber MyNumber = default(OuterNumber), OuterString MyString = default(OuterString), OuterBoolean MyBoolean = default(OuterBoolean)) + { + this.MyNumber = MyNumber; + this.MyString = MyString; + this.MyBoolean = MyBoolean; + } + + /// + /// Gets or Sets MyNumber + /// + [DataMember(Name="my_number", EmitDefaultValue=false)] + public OuterNumber MyNumber { get; set; } + + /// + /// Gets or Sets MyString + /// + [DataMember(Name="my_string", EmitDefaultValue=false)] + public OuterString MyString { get; set; } + + /// + /// Gets or Sets MyBoolean + /// + [DataMember(Name="my_boolean", EmitDefaultValue=false)] + public OuterBoolean MyBoolean { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class OuterComposite {\n"); + sb.Append(" MyNumber: ").Append(MyNumber).Append("\n"); + sb.Append(" MyString: ").Append(MyString).Append("\n"); + sb.Append(" MyBoolean: ").Append(MyBoolean).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object obj) + { + // credit: http://stackoverflow.com/a/10454552/677735 + return this.Equals(obj as OuterComposite); + } + + /// + /// Returns true if OuterComposite instances are equal + /// + /// Instance of OuterComposite to be compared + /// Boolean + public bool Equals(OuterComposite other) + { + // credit: http://stackoverflow.com/a/10454552/677735 + if (other == null) + return false; + + return + ( + this.MyNumber == other.MyNumber || + this.MyNumber != null && + this.MyNumber.Equals(other.MyNumber) + ) && + ( + this.MyString == other.MyString || + this.MyString != null && + this.MyString.Equals(other.MyString) + ) && + ( + this.MyBoolean == other.MyBoolean || + this.MyBoolean != null && + this.MyBoolean.Equals(other.MyBoolean) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + // credit: http://stackoverflow.com/a/263416/677735 + unchecked // Overflow is fine, just wrap + { + int hash = 41; + // Suitable nullity checks etc, of course :) + if (this.MyNumber != null) + hash = hash * 59 + this.MyNumber.GetHashCode(); + if (this.MyString != null) + hash = hash * 59 + this.MyString.GetHashCode(); + if (this.MyBoolean != null) + hash = hash * 59 + this.MyBoolean.GetHashCode(); + return hash; + } + } + } + +} diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterEnum.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterEnum.cs index 3395da21369..7155b03d7d5 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterEnum.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterEnum.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterNumber.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterNumber.cs new file mode 100644 index 00000000000..157701e7778 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterNumber.cs @@ -0,0 +1,101 @@ +/* + * Swagger Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; + +namespace IO.Swagger.Model +{ + /// + /// OuterNumber + /// + [DataContract] + public partial class OuterNumber : IEquatable + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public OuterNumber() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class OuterNumber {\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object obj) + { + // credit: http://stackoverflow.com/a/10454552/677735 + return this.Equals(obj as OuterNumber); + } + + /// + /// Returns true if OuterNumber instances are equal + /// + /// Instance of OuterNumber to be compared + /// Boolean + public bool Equals(OuterNumber other) + { + // credit: http://stackoverflow.com/a/10454552/677735 + if (other == null) + return false; + + return false; + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + // credit: http://stackoverflow.com/a/263416/677735 + unchecked // Overflow is fine, just wrap + { + int hash = 41; + // Suitable nullity checks etc, of course :) + return hash; + } + } + } + +} diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterString.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterString.cs new file mode 100644 index 00000000000..cdf8d1ba903 --- /dev/null +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/OuterString.cs @@ -0,0 +1,101 @@ +/* + * Swagger Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * Generated by: https://github.com/swagger-api/swagger-codegen.git + */ + +using System; +using System.Linq; +using System.IO; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; + +namespace IO.Swagger.Model +{ + /// + /// OuterString + /// + [DataContract] + public partial class OuterString : IEquatable + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + public OuterString() + { + } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + var sb = new StringBuilder(); + sb.Append("class OuterString {\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public string ToJson() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object obj) + { + // credit: http://stackoverflow.com/a/10454552/677735 + return this.Equals(obj as OuterString); + } + + /// + /// Returns true if OuterString instances are equal + /// + /// Instance of OuterString to be compared + /// Boolean + public bool Equals(OuterString other) + { + // credit: http://stackoverflow.com/a/10454552/677735 + if (other == null) + return false; + + return false; + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + // credit: http://stackoverflow.com/a/263416/677735 + unchecked // Overflow is fine, just wrap + { + int hash = 41; + // Suitable nullity checks etc, of course :) + return hash; + } + } + } + +} diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Pet.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Pet.cs index bb38488dae3..b794f6b1f4c 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Pet.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Pet.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -105,26 +106,32 @@ namespace IO.Swagger.Model /// [DataMember(Name="id", EmitDefaultValue=false)] public long? Id { get; set; } + /// /// Gets or Sets Category /// [DataMember(Name="category", EmitDefaultValue=false)] public Category Category { get; set; } + /// /// Gets or Sets Name /// [DataMember(Name="name", EmitDefaultValue=false)] public string Name { get; set; } + /// /// Gets or Sets PhotoUrls /// [DataMember(Name="photoUrls", EmitDefaultValue=false)] public List PhotoUrls { get; set; } + /// /// Gets or Sets Tags /// [DataMember(Name="tags", EmitDefaultValue=false)] public List Tags { get; set; } + + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ReadOnlyFirst.cs index 717bbe49f07..27492adc54b 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ReadOnlyFirst.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/ReadOnlyFirst.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,11 +42,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="bar", EmitDefaultValue=false)] public string Bar { get; private set; } + /// /// Gets or Sets Baz /// [DataMember(Name="baz", EmitDefaultValue=false)] public string Baz { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/SpecialModelName.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/SpecialModelName.cs index 023a87d91d1..f6ca2850cd9 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/SpecialModelName.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/SpecialModelName.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -41,6 +42,7 @@ namespace IO.Swagger.Model /// [DataMember(Name="$special[property.name]", EmitDefaultValue=false)] public long? SpecialPropertyName { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Tag.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Tag.cs index 40b77533c46..779a0c0d07f 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Tag.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/Tag.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -43,11 +44,13 @@ namespace IO.Swagger.Model /// [DataMember(Name="id", EmitDefaultValue=false)] public long? Id { get; set; } + /// /// Gets or Sets Name /// [DataMember(Name="name", EmitDefaultValue=false)] public string Name { get; set; } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/User.cs b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/User.cs index dc5a023bba0..669622d2613 100644 --- a/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/User.cs +++ b/samples/client/petstore/csharp/SwaggerClientNetCoreProject/src/IO.Swagger/Model/User.cs @@ -18,6 +18,7 @@ using System.Collections.ObjectModel; using System.Runtime.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Converters; +using SwaggerDateConverter = IO.Swagger.Client.SwaggerDateConverter; namespace IO.Swagger.Model { @@ -55,42 +56,50 @@ namespace IO.Swagger.Model /// [DataMember(Name="id", EmitDefaultValue=false)] public long? Id { get; set; } + /// /// Gets or Sets Username /// [DataMember(Name="username", EmitDefaultValue=false)] public string Username { get; set; } + /// /// Gets or Sets FirstName /// [DataMember(Name="firstName", EmitDefaultValue=false)] public string FirstName { get; set; } + /// /// Gets or Sets LastName /// [DataMember(Name="lastName", EmitDefaultValue=false)] public string LastName { get; set; } + /// /// Gets or Sets Email /// [DataMember(Name="email", EmitDefaultValue=false)] public string Email { get; set; } + /// /// Gets or Sets Password /// [DataMember(Name="password", EmitDefaultValue=false)] public string Password { get; set; } + /// /// Gets or Sets Phone /// [DataMember(Name="phone", EmitDefaultValue=false)] public string Phone { get; set; } + /// /// User Status /// /// User Status [DataMember(Name="userStatus", EmitDefaultValue=false)] public int? UserStatus { get; set; } + /// /// Returns the string presentation of the object /// From ceff3762cc21cafd1c695dad59a73e5241354fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?= Date: Tue, 13 Jun 2017 18:42:24 +0200 Subject: [PATCH 04/17] Update samples for ze-ph. (#5823) --- .../petstore/ze-ph/.swagger-codegen/VERSION | 1 + .../ze-ph/application/config/path_handler.yml | 35 +++++++++++++++++++ .../petstore/ze-ph/src/App/DTO/FormatTest.php | 2 +- .../ze-ph/src/App/DTO/OuterBoolean.php | 12 +++++++ .../ze-ph/src/App/DTO/OuterComposite.php | 33 +++++++++++++++++ .../ze-ph/src/App/DTO/OuterNumber.php | 12 +++++++ .../ze-ph/src/App/DTO/OuterString.php | 12 +++++++ .../src/App/Handler/FakeOuterBoolean.php | 27 ++++++++++++++ .../src/App/Handler/FakeOuterComposite.php | 27 ++++++++++++++ .../ze-ph/src/App/Handler/FakeOuterNumber.php | 27 ++++++++++++++ .../ze-ph/src/App/Handler/FakeOuterString.php | 27 ++++++++++++++ 11 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 samples/server/petstore/ze-ph/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/ze-ph/src/App/DTO/OuterBoolean.php create mode 100644 samples/server/petstore/ze-ph/src/App/DTO/OuterComposite.php create mode 100644 samples/server/petstore/ze-ph/src/App/DTO/OuterNumber.php create mode 100644 samples/server/petstore/ze-ph/src/App/DTO/OuterString.php create mode 100644 samples/server/petstore/ze-ph/src/App/Handler/FakeOuterBoolean.php create mode 100644 samples/server/petstore/ze-ph/src/App/Handler/FakeOuterComposite.php create mode 100644 samples/server/petstore/ze-ph/src/App/Handler/FakeOuterNumber.php create mode 100644 samples/server/petstore/ze-ph/src/App/Handler/FakeOuterString.php diff --git a/samples/server/petstore/ze-ph/.swagger-codegen/VERSION b/samples/server/petstore/ze-ph/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/ze-ph/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/ze-ph/application/config/path_handler.yml b/samples/server/petstore/ze-ph/application/config/path_handler.yml index 82576b5de10..2b91ca7d58d 100644 --- a/samples/server/petstore/ze-ph/application/config/path_handler.yml +++ b/samples/server/petstore/ze-ph/application/config/path_handler.yml @@ -7,6 +7,37 @@ path_handler: route: /fake defaults: handler: Fake + may_terminate: true + child_routes: + 'outer': + type: Literal + options: + route: /outer + child_routes: + 'boolean': + type: Literal + options: + route: /boolean + defaults: + handler: FakeOuterBoolean + 'composite': + type: Literal + options: + route: /composite + defaults: + handler: FakeOuterComposite + 'number': + type: Literal + options: + route: /number + defaults: + handler: FakeOuterNumber + 'string': + type: Literal + options: + route: /string + defaults: + handler: FakeOuterString 'pet': type: Literal options: @@ -119,6 +150,10 @@ path_handler: handlers: invokables: Fake: App\Handler\Fake + FakeOuterBoolean: App\Handler\FakeOuterBoolean + FakeOuterComposite: App\Handler\FakeOuterComposite + FakeOuterNumber: App\Handler\FakeOuterNumber + FakeOuterString: App\Handler\FakeOuterString Pet: App\Handler\Pet PetFindByStatus: App\Handler\PetFindByStatus PetFindByTags: App\Handler\PetFindByTags diff --git a/samples/server/petstore/ze-ph/src/App/DTO/FormatTest.php b/samples/server/petstore/ze-ph/src/App/DTO/FormatTest.php index 167e36dc7c7..e9e8a5b763c 100644 --- a/samples/server/petstore/ze-ph/src/App/DTO/FormatTest.php +++ b/samples/server/petstore/ze-ph/src/App/DTO/FormatTest.php @@ -57,7 +57,7 @@ class FormatTest /** * @DTA\Data(field="string", nullable=true) * @DTA\Validator(name="Type", options={"type":"string"}) - * @DTA\Validator(name="Regex", options={"pattern":"/[a-z]/i}) + * @DTA\Validator(name="Regex", options={"pattern":"/[a-z]/i"}) * @var string */ public $string; diff --git a/samples/server/petstore/ze-ph/src/App/DTO/OuterBoolean.php b/samples/server/petstore/ze-ph/src/App/DTO/OuterBoolean.php new file mode 100644 index 00000000000..4746e4941a3 --- /dev/null +++ b/samples/server/petstore/ze-ph/src/App/DTO/OuterBoolean.php @@ -0,0 +1,12 @@ +getAttribute("body"); + throw new PHException\HttpCode(500, "Not implemented"); + } +} diff --git a/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterComposite.php b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterComposite.php new file mode 100644 index 00000000000..2af69f4c309 --- /dev/null +++ b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterComposite.php @@ -0,0 +1,27 @@ +getAttribute("body"); + throw new PHException\HttpCode(500, "Not implemented"); + } +} diff --git a/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterNumber.php b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterNumber.php new file mode 100644 index 00000000000..e3be5060739 --- /dev/null +++ b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterNumber.php @@ -0,0 +1,27 @@ +getAttribute("body"); + throw new PHException\HttpCode(500, "Not implemented"); + } +} diff --git a/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterString.php b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterString.php new file mode 100644 index 00000000000..076c33cb82c --- /dev/null +++ b/samples/server/petstore/ze-ph/src/App/Handler/FakeOuterString.php @@ -0,0 +1,27 @@ +getAttribute("body"); + throw new PHException\HttpCode(500, "Not implemented"); + } +} From 29db258e651f4ca093aab7a5d9857458dfd7b060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?= Date: Tue, 13 Jun 2017 18:48:31 +0200 Subject: [PATCH 05/17] Update samples for akka-scala. (#5825) --- .../client/petstore/akka-scala/.swagger-codegen/VERSION | 1 + .../src/main/scala/io/swagger/client/api/UserApi.scala | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 samples/client/petstore/akka-scala/.swagger-codegen/VERSION diff --git a/samples/client/petstore/akka-scala/.swagger-codegen/VERSION b/samples/client/petstore/akka-scala/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/akka-scala/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/akka-scala/src/main/scala/io/swagger/client/api/UserApi.scala b/samples/client/petstore/akka-scala/src/main/scala/io/swagger/client/api/UserApi.scala index d1f95bdc18d..95fa3aa5880 100644 --- a/samples/client/petstore/akka-scala/src/main/scala/io/swagger/client/api/UserApi.scala +++ b/samples/client/petstore/akka-scala/src/main/scala/io/swagger/client/api/UserApi.scala @@ -23,7 +23,7 @@ object UserApi { def createUser(body: User): ApiRequest[Unit] = ApiRequest[Unit](ApiMethods.POST, "http://petstore.swagger.io/v2", "/user", "application/json") .withBody(body) - .withSuccessResponse[Unit](0) + .withDefaultSuccessResponse[Unit] /** * * Expected answers: @@ -34,7 +34,7 @@ object UserApi { def createUsersWithArrayInput(body: Seq[User]): ApiRequest[Unit] = ApiRequest[Unit](ApiMethods.POST, "http://petstore.swagger.io/v2", "/user/createWithArray", "application/json") .withBody(body) - .withSuccessResponse[Unit](0) + .withDefaultSuccessResponse[Unit] /** * * Expected answers: @@ -45,7 +45,7 @@ object UserApi { def createUsersWithListInput(body: Seq[User]): ApiRequest[Unit] = ApiRequest[Unit](ApiMethods.POST, "http://petstore.swagger.io/v2", "/user/createWithList", "application/json") .withBody(body) - .withSuccessResponse[Unit](0) + .withDefaultSuccessResponse[Unit] /** * This can only be done by the logged in user. * @@ -105,7 +105,7 @@ object UserApi { */ def logoutUser(): ApiRequest[Unit] = ApiRequest[Unit](ApiMethods.GET, "http://petstore.swagger.io/v2", "/user/logout", "application/json") - .withSuccessResponse[Unit](0) + .withDefaultSuccessResponse[Unit] /** * This can only be done by the logged in user. * From e8cdfa8185f737c7372d9af1f45bd182ca9e49f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?= Date: Tue, 13 Jun 2017 18:48:42 +0200 Subject: [PATCH 06/17] Update samples for html2. (#5827) --- samples/html2/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/html2/index.html b/samples/html2/index.html index 4f854bc990f..4d24fc1a9d4 100644 --- a/samples/html2/index.html +++ b/samples/html2/index.html @@ -974,7 +974,7 @@ margin-bottom: 20px;

API and SDK Documentation

Version: 1.0.0

-

This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.

+
This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key special-key to test the authorization filters.
From 4b9988c4f22a3a4d5e1823d5426b26539fd30fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?= Date: Tue, 13 Jun 2017 19:17:31 +0200 Subject: [PATCH 07/17] Update samples for several language (just whitespace changes, reordering, VERSION) (#5828) * Update samples for several languages. Just whitespace changes and some reordering where the order doesn't matter. * Adding generated .swagger-codegen/VERSION files. --- .../httpclient/.swagger-codegen/VERSION | 1 + .../android/volley/.swagger-codegen/VERSION | 1 + .../petstore/apex/sfdx-oss-manifest.json | 10 ++++++++++ .../async-scala/.swagger-codegen/VERSION | 1 + .../petstore/bash/.swagger-codegen/VERSION | 1 + .../petstore/cpprest/model/ApiResponse.cpp | 3 +++ .../petstore/cpprest/model/ApiResponse.h | 4 ++-- .../petstore/cpprest/model/Category.cpp | 3 +++ .../client/petstore/cpprest/model/Category.h | 2 +- .../client/petstore/cpprest/model/Order.cpp | 3 +++ samples/client/petstore/cpprest/model/Order.h | 10 +++++----- samples/client/petstore/cpprest/model/Pet.cpp | 3 +++ samples/client/petstore/cpprest/model/Pet.h | 10 +++++----- samples/client/petstore/cpprest/model/Tag.cpp | 3 +++ samples/client/petstore/cpprest/model/Tag.h | 2 +- .../client/petstore/cpprest/model/User.cpp | 3 +++ samples/client/petstore/cpprest/model/User.h | 14 ++++++------- .../SwaggerClient/.swagger-codegen/VERSION | 1 + .../dart/swagger/.swagger-codegen/VERSION | 1 + .../petstore/elixir/.swagger-codegen/VERSION | 1 + .../petstore/flash/.swagger-codegen/VERSION | 1 + .../go/go-petstore/.swagger-codegen/VERSION | 1 + .../client/petstore/go/go-petstore/README.md | 4 ++-- .../petstore/groovy/.swagger-codegen/VERSION | 1 + .../retrofit2rx2/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../jaxrs-cxf-client/.swagger-codegen/VERSION | 1 + .../petstore/jmeter/.swagger-codegen/VERSION | 1 + .../petstore/perl/.swagger-codegen/VERSION | 1 + samples/client/petstore/perl/README.md | 12 +++++------ .../petstore/qt5cpp/.swagger-codegen/VERSION | 1 + .../petstore/scala/.swagger-codegen/VERSION | 1 + .../spring-cloud/.swagger-codegen/VERSION | 1 + .../spring-stubs/.swagger-codegen/VERSION | 1 + .../petstore/tizen/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../builds/default/.swagger-codegen/VERSION | 1 + .../es6-target/.swagger-codegen/VERSION | 1 + .../with-npm-version/.swagger-codegen/VERSION | 1 + .../default/.swagger-codegen/VERSION | 1 + .../npm/.swagger-codegen/VERSION | 1 + .../cwiki/.swagger-codegen/VERSION | 1 + .../documentation/cwiki/confluence-markup.txt | 20 +++++++++++++++++++ samples/dynamic-html/.swagger-codegen/VERSION | 1 + samples/html.md/.swagger-codegen/VERSION | 1 + .../aspnetcore/.swagger-codegen/VERSION | 1 + .../erlang-server/.swagger-codegen/VERSION | 1 + .../petstore/erlang-server/priv/swagger.json | 4 ++-- .../petstore/finch/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../swagger_server/swagger/swagger.yaml | 2 +- .../flaskConnexion/.swagger-codegen/VERSION | 1 + .../swagger_server/swagger/swagger.yaml | 2 +- .../go-api-server/.swagger-codegen/VERSION | 1 + .../haskell-servant/.swagger-codegen/VERSION | 1 + .../java-inflector/.swagger-codegen/VERSION | 1 + .../src/main/swagger/swagger.yaml | 8 ++++---- .../java-msf4j/.swagger-codegen/VERSION | 1 + .../java-play-framework/public/swagger.json | 4 ++-- .../.swagger-codegen/VERSION | 1 + .../jaxrs-cxf-cdi/.swagger-codegen/VERSION | 1 + .../petstore/jaxrs-cxf-cdi/swagger.json | 4 ++-- .../.swagger-codegen/VERSION | 1 + .../jaxrs-cxf/.swagger-codegen/VERSION | 1 + .../default/.swagger-codegen/VERSION | 1 + .../eap-joda/.swagger-codegen/VERSION | 1 + .../src/gen/java/io/swagger/api/PetApi.java | 4 ++-- .../src/gen/java/io/swagger/api/UserApi.java | 2 +- .../eap/.swagger-codegen/VERSION | 1 + .../src/gen/java/io/swagger/api/PetApi.java | 4 ++-- .../src/gen/java/io/swagger/api/UserApi.java | 2 +- .../joda/.swagger-codegen/VERSION | 1 + .../jaxrs-spec/.swagger-codegen/VERSION | 1 + .../model/AdditionalPropertiesClass.java | 1 + .../src/gen/java/io/swagger/model/Animal.java | 1 + .../gen/java/io/swagger/model/AnimalFarm.java | 1 + .../model/ArrayOfArrayOfNumberOnly.java | 1 + .../io/swagger/model/ArrayOfNumberOnly.java | 1 + .../gen/java/io/swagger/model/ArrayTest.java | 1 + .../java/io/swagger/model/Capitalization.java | 1 + .../src/gen/java/io/swagger/model/Cat.java | 1 + .../gen/java/io/swagger/model/Category.java | 1 + .../gen/java/io/swagger/model/ClassModel.java | 1 + .../src/gen/java/io/swagger/model/Client.java | 1 + .../src/gen/java/io/swagger/model/Dog.java | 1 + .../gen/java/io/swagger/model/EnumArrays.java | 1 + .../gen/java/io/swagger/model/EnumTest.java | 1 + .../gen/java/io/swagger/model/FormatTest.java | 1 + .../io/swagger/model/HasOnlyReadOnly.java | 1 + .../gen/java/io/swagger/model/MapTest.java | 1 + ...ropertiesAndAdditionalPropertiesClass.java | 1 + .../io/swagger/model/Model200Response.java | 1 + .../io/swagger/model/ModelApiResponse.java | 1 + .../java/io/swagger/model/ModelReturn.java | 1 + .../src/gen/java/io/swagger/model/Name.java | 1 + .../gen/java/io/swagger/model/NumberOnly.java | 1 + .../src/gen/java/io/swagger/model/Order.java | 1 + .../java/io/swagger/model/OuterComposite.java | 1 + .../src/gen/java/io/swagger/model/Pet.java | 1 + .../java/io/swagger/model/ReadOnlyFirst.java | 1 + .../io/swagger/model/SpecialModelName.java | 1 + .../src/gen/java/io/swagger/model/Tag.java | 1 + .../src/gen/java/io/swagger/model/User.java | 1 + .../server/petstore/jaxrs-spec/swagger.json | 16 +++++++-------- .../jaxrs/jersey1/.swagger-codegen/VERSION | 1 + .../jaxrs/jersey2/.swagger-codegen/VERSION | 1 + .../petstore/lumen/.swagger-codegen/VERSION | 1 + .../petstore/nancyfx/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../api/swagger.yaml | 2 +- .../petstore/nodejs/.swagger-codegen/VERSION | 1 + .../server/petstore/nodejs/api/swagger.yaml | 2 +- .../petstore/rails5/.swagger-codegen/VERSION | 1 + .../scalatra/.swagger-codegen/VERSION | 1 + .../petstore/silex/.swagger-codegen/VERSION | 1 + .../petstore/sinatra/.swagger-codegen/VERSION | 1 + samples/server/petstore/sinatra/swagger.yaml | 2 +- .../petstore/slim/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../spring-mvc/.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../.swagger-codegen/VERSION | 1 + .../springboot/.swagger-codegen/VERSION | 1 + .../undertow/.swagger-codegen/VERSION | 1 + .../src/main/resources/config/swagger.json | 4 ++-- 127 files changed, 204 insertions(+), 60 deletions(-) create mode 100644 samples/client/petstore/android/httpclient/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/android/volley/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/apex/sfdx-oss-manifest.json create mode 100644 samples/client/petstore/async-scala/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/bash/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/dart/swagger/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/elixir/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/flash/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/go/go-petstore/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/groovy/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/java/retrofit2rx2/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/javascript-closure-angular/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/jaxrs-cxf-client/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/jmeter/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/perl/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/qt5cpp/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/scala/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/spring-cloud/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/spring-stubs/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/tizen/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-angular/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-fetch/builds/default/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-fetch/builds/es6-target/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-fetch/builds/with-npm-version/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-node/default/.swagger-codegen/VERSION create mode 100644 samples/client/petstore/typescript-node/npm/.swagger-codegen/VERSION create mode 100644 samples/documentation/cwiki/.swagger-codegen/VERSION create mode 100644 samples/dynamic-html/.swagger-codegen/VERSION create mode 100644 samples/html.md/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/aspnetcore/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/erlang-server/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/finch/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/flaskConnexion-python2/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/flaskConnexion/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/go-api-server/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/haskell-servant/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/java-inflector/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/java-msf4j/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-cxf-annotated-base-path/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-cxf-cdi/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-cxf-non-spring-app/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-cxf/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-resteasy/default/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-resteasy/eap-joda/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-resteasy/eap/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-resteasy/joda/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs-spec/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs/jersey1/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/jaxrs/jersey2/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/lumen/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/nancyfx/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/nodejs-google-cloud-functions/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/nodejs/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/rails5/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/scalatra/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/silex/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/sinatra/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/slim/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/spring-mvc-j8-async/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/spring-mvc/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/springboot-beanvalidation/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/springboot-delegate-j8/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/springboot-delegate/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/springboot-implicitHeaders/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/springboot/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/undertow/.swagger-codegen/VERSION diff --git a/samples/client/petstore/android/httpclient/.swagger-codegen/VERSION b/samples/client/petstore/android/httpclient/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/android/httpclient/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/android/volley/.swagger-codegen/VERSION b/samples/client/petstore/android/volley/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/android/volley/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/apex/sfdx-oss-manifest.json b/samples/client/petstore/apex/sfdx-oss-manifest.json new file mode 100644 index 00000000000..f63e2e36114 --- /dev/null +++ b/samples/client/petstore/apex/sfdx-oss-manifest.json @@ -0,0 +1,10 @@ +{ + "sfdxSource": true, + "version": "1.0.0", + "sourceFolder": "src/", + "folders": [ + "src/classes" + ], + "files": [ + ] +} \ No newline at end of file diff --git a/samples/client/petstore/async-scala/.swagger-codegen/VERSION b/samples/client/petstore/async-scala/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/async-scala/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/bash/.swagger-codegen/VERSION b/samples/client/petstore/bash/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/bash/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/cpprest/model/ApiResponse.cpp b/samples/client/petstore/cpprest/model/ApiResponse.cpp index 45bf13d1910..d7aea45f956 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.cpp +++ b/samples/client/petstore/cpprest/model/ApiResponse.cpp @@ -41,6 +41,7 @@ void ApiResponse::validate() web::json::value ApiResponse::toJson() const { + web::json::value val = web::json::value::object(); if(m_CodeIsSet) @@ -62,6 +63,8 @@ web::json::value ApiResponse::toJson() const void ApiResponse::fromJson(web::json::value& val) { + + if(val.has_field(U("code"))) { setCode(ModelBase::int32_tFromJson(val[U("code")])); diff --git a/samples/client/petstore/cpprest/model/ApiResponse.h b/samples/client/petstore/cpprest/model/ApiResponse.h index 49945e5fd71..1f8e7feb2bc 100644 --- a/samples/client/petstore/cpprest/model/ApiResponse.h +++ b/samples/client/petstore/cpprest/model/ApiResponse.h @@ -78,9 +78,9 @@ public: protected: int32_t m_Code; bool m_CodeIsSet; -utility::string_t m_Type; + utility::string_t m_Type; bool m_TypeIsSet; -utility::string_t m_Message; + utility::string_t m_Message; bool m_MessageIsSet; }; diff --git a/samples/client/petstore/cpprest/model/Category.cpp b/samples/client/petstore/cpprest/model/Category.cpp index bdb6d8e894a..57777c42271 100644 --- a/samples/client/petstore/cpprest/model/Category.cpp +++ b/samples/client/petstore/cpprest/model/Category.cpp @@ -39,6 +39,7 @@ void Category::validate() web::json::value Category::toJson() const { + web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -56,6 +57,8 @@ web::json::value Category::toJson() const void Category::fromJson(web::json::value& val) { + + if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); diff --git a/samples/client/petstore/cpprest/model/Category.h b/samples/client/petstore/cpprest/model/Category.h index 80e759424a9..88cc7148202 100644 --- a/samples/client/petstore/cpprest/model/Category.h +++ b/samples/client/petstore/cpprest/model/Category.h @@ -71,7 +71,7 @@ public: protected: int64_t m_Id; bool m_IdIsSet; -utility::string_t m_Name; + utility::string_t m_Name; bool m_NameIsSet; }; diff --git a/samples/client/petstore/cpprest/model/Order.cpp b/samples/client/petstore/cpprest/model/Order.cpp index e21d867cd7e..a64b12f3683 100644 --- a/samples/client/petstore/cpprest/model/Order.cpp +++ b/samples/client/petstore/cpprest/model/Order.cpp @@ -47,6 +47,7 @@ void Order::validate() web::json::value Order::toJson() const { + web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -80,6 +81,8 @@ web::json::value Order::toJson() const void Order::fromJson(web::json::value& val) { + + if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); diff --git a/samples/client/petstore/cpprest/model/Order.h b/samples/client/petstore/cpprest/model/Order.h index b8f22de9f47..bd838e920e7 100644 --- a/samples/client/petstore/cpprest/model/Order.h +++ b/samples/client/petstore/cpprest/model/Order.h @@ -99,15 +99,15 @@ public: protected: int64_t m_Id; bool m_IdIsSet; -int64_t m_PetId; + int64_t m_PetId; bool m_PetIdIsSet; -int32_t m_Quantity; + int32_t m_Quantity; bool m_QuantityIsSet; -utility::datetime m_ShipDate; + utility::datetime m_ShipDate; bool m_ShipDateIsSet; -utility::string_t m_Status; + utility::string_t m_Status; bool m_StatusIsSet; -bool m_Complete; + bool m_Complete; bool m_CompleteIsSet; }; diff --git a/samples/client/petstore/cpprest/model/Pet.cpp b/samples/client/petstore/cpprest/model/Pet.cpp index 51dd6d883e9..6414c9bb35c 100644 --- a/samples/client/petstore/cpprest/model/Pet.cpp +++ b/samples/client/petstore/cpprest/model/Pet.cpp @@ -42,6 +42,7 @@ void Pet::validate() web::json::value Pet::toJson() const { + web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -84,6 +85,8 @@ web::json::value Pet::toJson() const void Pet::fromJson(web::json::value& val) { + + if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); diff --git a/samples/client/petstore/cpprest/model/Pet.h b/samples/client/petstore/cpprest/model/Pet.h index 065c46bdb93..403db5b0236 100644 --- a/samples/client/petstore/cpprest/model/Pet.h +++ b/samples/client/petstore/cpprest/model/Pet.h @@ -96,13 +96,13 @@ public: protected: int64_t m_Id; bool m_IdIsSet; -std::shared_ptr m_Category; + std::shared_ptr m_Category; bool m_CategoryIsSet; -utility::string_t m_Name; - std::vector m_PhotoUrls; - std::vector> m_Tags; + utility::string_t m_Name; + std::vector m_PhotoUrls; + std::vector> m_Tags; bool m_TagsIsSet; -utility::string_t m_Status; + utility::string_t m_Status; bool m_StatusIsSet; }; diff --git a/samples/client/petstore/cpprest/model/Tag.cpp b/samples/client/petstore/cpprest/model/Tag.cpp index 3cb0798c99e..8c77f0a4b4a 100644 --- a/samples/client/petstore/cpprest/model/Tag.cpp +++ b/samples/client/petstore/cpprest/model/Tag.cpp @@ -39,6 +39,7 @@ void Tag::validate() web::json::value Tag::toJson() const { + web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -56,6 +57,8 @@ web::json::value Tag::toJson() const void Tag::fromJson(web::json::value& val) { + + if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); diff --git a/samples/client/petstore/cpprest/model/Tag.h b/samples/client/petstore/cpprest/model/Tag.h index a977ca07980..311a05461c2 100644 --- a/samples/client/petstore/cpprest/model/Tag.h +++ b/samples/client/petstore/cpprest/model/Tag.h @@ -71,7 +71,7 @@ public: protected: int64_t m_Id; bool m_IdIsSet; -utility::string_t m_Name; + utility::string_t m_Name; bool m_NameIsSet; }; diff --git a/samples/client/petstore/cpprest/model/User.cpp b/samples/client/petstore/cpprest/model/User.cpp index 1ea09f35b50..c03ba1ada72 100644 --- a/samples/client/petstore/cpprest/model/User.cpp +++ b/samples/client/petstore/cpprest/model/User.cpp @@ -51,6 +51,7 @@ void User::validate() web::json::value User::toJson() const { + web::json::value val = web::json::value::object(); if(m_IdIsSet) @@ -92,6 +93,8 @@ web::json::value User::toJson() const void User::fromJson(web::json::value& val) { + + if(val.has_field(U("id"))) { setId(ModelBase::int64_tFromJson(val[U("id")])); diff --git a/samples/client/petstore/cpprest/model/User.h b/samples/client/petstore/cpprest/model/User.h index 83b2120a360..c3c0ee8aeea 100644 --- a/samples/client/petstore/cpprest/model/User.h +++ b/samples/client/petstore/cpprest/model/User.h @@ -113,19 +113,19 @@ public: protected: int64_t m_Id; bool m_IdIsSet; -utility::string_t m_Username; + utility::string_t m_Username; bool m_UsernameIsSet; -utility::string_t m_FirstName; + utility::string_t m_FirstName; bool m_FirstNameIsSet; -utility::string_t m_LastName; + utility::string_t m_LastName; bool m_LastNameIsSet; -utility::string_t m_Email; + utility::string_t m_Email; bool m_EmailIsSet; -utility::string_t m_Password; + utility::string_t m_Password; bool m_PasswordIsSet; -utility::string_t m_Phone; + utility::string_t m_Phone; bool m_PhoneIsSet; -int32_t m_UserStatus; + int32_t m_UserStatus; bool m_UserStatusIsSet; }; diff --git a/samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient/.swagger-codegen/VERSION b/samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/csharp-dotnet2/SwaggerClientTest/Lib/SwaggerClient/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/dart/swagger/.swagger-codegen/VERSION b/samples/client/petstore/dart/swagger/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/dart/swagger/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/elixir/.swagger-codegen/VERSION b/samples/client/petstore/elixir/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/elixir/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/flash/.swagger-codegen/VERSION b/samples/client/petstore/flash/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/flash/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/.swagger-codegen/VERSION b/samples/client/petstore/go/go-petstore/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/go/go-petstore/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/README.md b/samples/client/petstore/go/go-petstore/README.md index 4c12216fb9a..307fe812519 100644 --- a/samples/client/petstore/go/go-petstore/README.md +++ b/samples/client/petstore/go/go-petstore/README.md @@ -59,11 +59,9 @@ Class | Method | HTTP request | Description - [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) - [ArrayTest](docs/ArrayTest.md) - [Capitalization](docs/Capitalization.md) - - [Cat](docs/Cat.md) - [Category](docs/Category.md) - [ClassModel](docs/ClassModel.md) - [Client](docs/Client.md) - - [Dog](docs/Dog.md) - [EnumArrays](docs/EnumArrays.md) - [EnumClass](docs/EnumClass.md) - [EnumTest](docs/EnumTest.md) @@ -88,6 +86,8 @@ Class | Method | HTTP request | Description - [SpecialModelName](docs/SpecialModelName.md) - [Tag](docs/Tag.md) - [User](docs/User.md) + - [Cat](docs/Cat.md) + - [Dog](docs/Dog.md) ## Documentation For Authorization diff --git a/samples/client/petstore/groovy/.swagger-codegen/VERSION b/samples/client/petstore/groovy/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/groovy/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/java/retrofit2rx2/.swagger-codegen/VERSION b/samples/client/petstore/java/retrofit2rx2/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/java/retrofit2rx2/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/javascript-closure-angular/.swagger-codegen/VERSION b/samples/client/petstore/javascript-closure-angular/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/javascript-closure-angular/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/jaxrs-cxf-client/.swagger-codegen/VERSION b/samples/client/petstore/jaxrs-cxf-client/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf-client/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/jmeter/.swagger-codegen/VERSION b/samples/client/petstore/jmeter/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/jmeter/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/perl/.swagger-codegen/VERSION b/samples/client/petstore/perl/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/perl/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/perl/README.md b/samples/client/petstore/perl/README.md index af98f10987a..ab56966b20b 100644 --- a/samples/client/petstore/perl/README.md +++ b/samples/client/petstore/perl/README.md @@ -239,11 +239,9 @@ use WWW::SwaggerClient::Object::ArrayOfArrayOfNumberOnly; use WWW::SwaggerClient::Object::ArrayOfNumberOnly; use WWW::SwaggerClient::Object::ArrayTest; use WWW::SwaggerClient::Object::Capitalization; -use WWW::SwaggerClient::Object::Cat; use WWW::SwaggerClient::Object::Category; use WWW::SwaggerClient::Object::ClassModel; use WWW::SwaggerClient::Object::Client; -use WWW::SwaggerClient::Object::Dog; use WWW::SwaggerClient::Object::EnumArrays; use WWW::SwaggerClient::Object::EnumClass; use WWW::SwaggerClient::Object::EnumTest; @@ -267,6 +265,8 @@ use WWW::SwaggerClient::Object::ReadOnlyFirst; use WWW::SwaggerClient::Object::SpecialModelName; use WWW::SwaggerClient::Object::Tag; use WWW::SwaggerClient::Object::User; +use WWW::SwaggerClient::Object::Cat; +use WWW::SwaggerClient::Object::Dog; ```` @@ -292,11 +292,9 @@ use WWW::SwaggerClient::Object::ArrayOfArrayOfNumberOnly; use WWW::SwaggerClient::Object::ArrayOfNumberOnly; use WWW::SwaggerClient::Object::ArrayTest; use WWW::SwaggerClient::Object::Capitalization; -use WWW::SwaggerClient::Object::Cat; use WWW::SwaggerClient::Object::Category; use WWW::SwaggerClient::Object::ClassModel; use WWW::SwaggerClient::Object::Client; -use WWW::SwaggerClient::Object::Dog; use WWW::SwaggerClient::Object::EnumArrays; use WWW::SwaggerClient::Object::EnumClass; use WWW::SwaggerClient::Object::EnumTest; @@ -320,6 +318,8 @@ use WWW::SwaggerClient::Object::ReadOnlyFirst; use WWW::SwaggerClient::Object::SpecialModelName; use WWW::SwaggerClient::Object::Tag; use WWW::SwaggerClient::Object::User; +use WWW::SwaggerClient::Object::Cat; +use WWW::SwaggerClient::Object::Dog; # for displaying the API response data use Data::Dumper; @@ -383,11 +383,9 @@ Class | Method | HTTP request | Description - [WWW::SwaggerClient::Object::ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md) - [WWW::SwaggerClient::Object::ArrayTest](docs/ArrayTest.md) - [WWW::SwaggerClient::Object::Capitalization](docs/Capitalization.md) - - [WWW::SwaggerClient::Object::Cat](docs/Cat.md) - [WWW::SwaggerClient::Object::Category](docs/Category.md) - [WWW::SwaggerClient::Object::ClassModel](docs/ClassModel.md) - [WWW::SwaggerClient::Object::Client](docs/Client.md) - - [WWW::SwaggerClient::Object::Dog](docs/Dog.md) - [WWW::SwaggerClient::Object::EnumArrays](docs/EnumArrays.md) - [WWW::SwaggerClient::Object::EnumClass](docs/EnumClass.md) - [WWW::SwaggerClient::Object::EnumTest](docs/EnumTest.md) @@ -411,6 +409,8 @@ Class | Method | HTTP request | Description - [WWW::SwaggerClient::Object::SpecialModelName](docs/SpecialModelName.md) - [WWW::SwaggerClient::Object::Tag](docs/Tag.md) - [WWW::SwaggerClient::Object::User](docs/User.md) + - [WWW::SwaggerClient::Object::Cat](docs/Cat.md) + - [WWW::SwaggerClient::Object::Dog](docs/Dog.md) # DOCUMENTATION FOR AUTHORIZATION diff --git a/samples/client/petstore/qt5cpp/.swagger-codegen/VERSION b/samples/client/petstore/qt5cpp/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/qt5cpp/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/scala/.swagger-codegen/VERSION b/samples/client/petstore/scala/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/scala/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/spring-cloud/.swagger-codegen/VERSION b/samples/client/petstore/spring-cloud/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/spring-cloud/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/spring-stubs/.swagger-codegen/VERSION b/samples/client/petstore/spring-stubs/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/spring-stubs/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/tizen/.swagger-codegen/VERSION b/samples/client/petstore/tizen/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/tizen/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-angular/.swagger-codegen/VERSION b/samples/client/petstore/typescript-angular/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-angular/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/default/.swagger-codegen/VERSION b/samples/client/petstore/typescript-fetch/builds/default/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-fetch/builds/default/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/.swagger-codegen/VERSION b/samples/client/petstore/typescript-fetch/builds/es6-target/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-fetch/builds/es6-target/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/.swagger-codegen/VERSION b/samples/client/petstore/typescript-fetch/builds/with-npm-version/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-node/default/.swagger-codegen/VERSION b/samples/client/petstore/typescript-node/default/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-node/default/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/typescript-node/npm/.swagger-codegen/VERSION b/samples/client/petstore/typescript-node/npm/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/client/petstore/typescript-node/npm/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/documentation/cwiki/.swagger-codegen/VERSION b/samples/documentation/cwiki/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/documentation/cwiki/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/documentation/cwiki/confluence-markup.txt b/samples/documentation/cwiki/confluence-markup.txt index 83996a97de8..3f8324efef7 100644 --- a/samples/documentation/cwiki/confluence-markup.txt +++ b/samples/documentation/cwiki/confluence-markup.txt @@ -28,6 +28,7 @@ h2. Endpoints + h4. Responses *Status Code:* 405 *Message:* Invalid input @@ -60,6 +61,7 @@ h2. Endpoints |petId |Pet id to delete |(/) | | | + h5. Header Parameters ||Name||Description||Required||Default||Pattern|| @@ -104,6 +106,7 @@ h2. Endpoints + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -161,6 +164,7 @@ array[Pet] + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -218,6 +222,7 @@ array[Pet] + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -286,6 +291,7 @@ Pet + h4. Responses *Status Code:* 400 *Message:* Invalid ID supplied @@ -351,6 +357,7 @@ Pet + h4. Responses *Status Code:* 405 *Message:* Invalid input @@ -388,6 +395,7 @@ Pet + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -428,6 +436,7 @@ ApiResponse + h4. Responses *Status Code:* 400 *Message:* Invalid ID supplied @@ -520,6 +529,7 @@ map[String, Integer] + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -588,6 +598,7 @@ Order + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -642,6 +653,7 @@ Order + h4. Responses *Status Code:* 0 *Message:* successful operation @@ -679,6 +691,7 @@ Order + h4. Responses *Status Code:* 0 *Message:* successful operation @@ -716,6 +729,7 @@ Order + h4. Responses *Status Code:* 0 *Message:* successful operation @@ -753,6 +767,7 @@ Order + h4. Responses *Status Code:* 400 *Message:* Invalid username supplied @@ -804,6 +819,7 @@ Order + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -868,11 +884,13 @@ User h5. Query Parameters ||Name||Description||Required||Default||Pattern|| |username |The user name for login |(/) | | | + |password |The password for login in clear text |(/) | | | + h4. Responses *Status Code:* 200 *Message:* successful operation @@ -967,6 +985,7 @@ String ||Name||Description||Required||Default||Pattern|| |username |name that need to be deleted |(/) | | | + h5. Body Parameter ||Name||Description||Required||Default||Pattern|| |body |Updated user object |(/) | | | @@ -976,6 +995,7 @@ String + h4. Responses *Status Code:* 400 *Message:* Invalid user supplied diff --git a/samples/dynamic-html/.swagger-codegen/VERSION b/samples/dynamic-html/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/dynamic-html/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/html.md/.swagger-codegen/VERSION b/samples/html.md/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/html.md/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION b/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/erlang-server/.swagger-codegen/VERSION b/samples/server/petstore/erlang-server/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/erlang-server/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/erlang-server/priv/swagger.json b/samples/server/petstore/erlang-server/priv/swagger.json index 708a71c0c0f..3eef6c58413 100644 --- a/samples/server/petstore/erlang-server/priv/swagger.json +++ b/samples/server/petstore/erlang-server/priv/swagger.json @@ -108,8 +108,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] + "enum" : [ "available", "pending", "sold" ], + "default" : "available" }, "collectionFormat" : "csv" } ], diff --git a/samples/server/petstore/finch/.swagger-codegen/VERSION b/samples/server/petstore/finch/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/finch/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/flaskConnexion-python2/.swagger-codegen/VERSION b/samples/server/petstore/flaskConnexion-python2/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/flaskConnexion-python2/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/flaskConnexion-python2/swagger_server/swagger/swagger.yaml b/samples/server/petstore/flaskConnexion-python2/swagger_server/swagger/swagger.yaml index a12fa87d872..92590b31bc1 100644 --- a/samples/server/petstore/flaskConnexion-python2/swagger_server/swagger/swagger.yaml +++ b/samples/server/petstore/flaskConnexion-python2/swagger_server/swagger/swagger.yaml @@ -108,11 +108,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: diff --git a/samples/server/petstore/flaskConnexion/.swagger-codegen/VERSION b/samples/server/petstore/flaskConnexion/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/flaskConnexion/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/flaskConnexion/swagger_server/swagger/swagger.yaml b/samples/server/petstore/flaskConnexion/swagger_server/swagger/swagger.yaml index a12fa87d872..92590b31bc1 100644 --- a/samples/server/petstore/flaskConnexion/swagger_server/swagger/swagger.yaml +++ b/samples/server/petstore/flaskConnexion/swagger_server/swagger/swagger.yaml @@ -108,11 +108,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: diff --git a/samples/server/petstore/go-api-server/.swagger-codegen/VERSION b/samples/server/petstore/go-api-server/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/go-api-server/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/haskell-servant/.swagger-codegen/VERSION b/samples/server/petstore/haskell-servant/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/haskell-servant/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/java-inflector/.swagger-codegen/VERSION b/samples/server/petstore/java-inflector/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/java-inflector/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/java-inflector/src/main/swagger/swagger.yaml b/samples/server/petstore/java-inflector/src/main/swagger/swagger.yaml index eb5a5a64d08..9258d1ae2df 100644 --- a/samples/server/petstore/java-inflector/src/main/swagger/swagger.yaml +++ b/samples/server/petstore/java-inflector/src/main/swagger/swagger.yaml @@ -109,11 +109,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: @@ -623,10 +623,10 @@ paths: type: "array" items: type: "string" - default: "$" enum: - ">" - "$" + default: "$" - name: "enum_form_string" in: "formData" description: "Form parameter enum test (string)" @@ -644,10 +644,10 @@ paths: type: "array" items: type: "string" - default: "$" enum: - ">" - "$" + default: "$" - name: "enum_header_string" in: "header" description: "Header parameter enum test (string)" @@ -665,10 +665,10 @@ paths: type: "array" items: type: "string" - default: "$" enum: - ">" - "$" + default: "$" - name: "enum_query_string" in: "query" description: "Query parameter enum test (string)" diff --git a/samples/server/petstore/java-msf4j/.swagger-codegen/VERSION b/samples/server/petstore/java-msf4j/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/java-msf4j/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/java-play-framework/public/swagger.json b/samples/server/petstore/java-play-framework/public/swagger.json index 25192459c61..3446ff8eac8 100644 --- a/samples/server/petstore/java-play-framework/public/swagger.json +++ b/samples/server/petstore/java-play-framework/public/swagger.json @@ -112,8 +112,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] + "enum" : [ "available", "pending", "sold" ], + "default" : "available" }, "collectionFormat" : "csv" } ], diff --git a/samples/server/petstore/jaxrs-cxf-annotated-base-path/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-cxf-annotated-base-path/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf-annotated-base-path/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf-cdi/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-cxf-cdi/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf-cdi/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf-cdi/swagger.json b/samples/server/petstore/jaxrs-cxf-cdi/swagger.json index 18ccb05b4ba..df8ae51dbf4 100644 --- a/samples/server/petstore/jaxrs-cxf-cdi/swagger.json +++ b/samples/server/petstore/jaxrs-cxf-cdi/swagger.json @@ -108,8 +108,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] + "enum" : [ "available", "pending", "sold" ], + "default" : "available" }, "collectionFormat" : "csv" } ], diff --git a/samples/server/petstore/jaxrs-cxf-non-spring-app/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-cxf-non-spring-app/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf-non-spring-app/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-cxf/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/default/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-resteasy/default/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-resteasy/default/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap-joda/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-resteasy/eap-joda/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-resteasy/eap-joda/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/PetApi.java b/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/PetApi.java index 22a0cb0a5ca..41596b5dfad 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/PetApi.java +++ b/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/PetApi.java @@ -67,7 +67,7 @@ public interface PetApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Pet.class, responseContainer = "List"), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid status value", response = Pet.class, responseContainer = "List") }) - public Response findPetsByStatus( @NotNull @QueryParam("status") List status,@Context SecurityContext securityContext); + public Response findPetsByStatus( @NotNull @QueryParam("status") List status,@Context SecurityContext securityContext); @GET @Path("/findByTags") @@ -82,7 +82,7 @@ public interface PetApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Pet.class, responseContainer = "List"), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid tag value", response = Pet.class, responseContainer = "List") }) - public Response findPetsByTags( @NotNull @QueryParam("tags") List tags,@Context SecurityContext securityContext); + public Response findPetsByTags( @NotNull @QueryParam("tags") List tags,@Context SecurityContext securityContext); @GET @Path("/{petId}") diff --git a/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/UserApi.java b/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/UserApi.java index 5909038e544..88944c1940e 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/UserApi.java +++ b/samples/server/petstore/jaxrs-resteasy/eap-joda/src/gen/java/io/swagger/api/UserApi.java @@ -80,7 +80,7 @@ public interface UserApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = String.class), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid username/password supplied", response = String.class) }) - public Response loginUser( @NotNull @QueryParam("username") String username, @NotNull @QueryParam("password") String password,@Context SecurityContext securityContext); + public Response loginUser( @NotNull @QueryParam("username") String username, @NotNull @QueryParam("password") String password,@Context SecurityContext securityContext); @GET @Path("/logout") diff --git a/samples/server/petstore/jaxrs-resteasy/eap/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-resteasy/eap/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-resteasy/eap/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/PetApi.java b/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/PetApi.java index 22a0cb0a5ca..41596b5dfad 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/PetApi.java +++ b/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/PetApi.java @@ -67,7 +67,7 @@ public interface PetApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Pet.class, responseContainer = "List"), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid status value", response = Pet.class, responseContainer = "List") }) - public Response findPetsByStatus( @NotNull @QueryParam("status") List status,@Context SecurityContext securityContext); + public Response findPetsByStatus( @NotNull @QueryParam("status") List status,@Context SecurityContext securityContext); @GET @Path("/findByTags") @@ -82,7 +82,7 @@ public interface PetApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = Pet.class, responseContainer = "List"), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid tag value", response = Pet.class, responseContainer = "List") }) - public Response findPetsByTags( @NotNull @QueryParam("tags") List tags,@Context SecurityContext securityContext); + public Response findPetsByTags( @NotNull @QueryParam("tags") List tags,@Context SecurityContext securityContext); @GET @Path("/{petId}") diff --git a/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/UserApi.java b/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/UserApi.java index 5909038e544..88944c1940e 100644 --- a/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/UserApi.java +++ b/samples/server/petstore/jaxrs-resteasy/eap/src/gen/java/io/swagger/api/UserApi.java @@ -80,7 +80,7 @@ public interface UserApi { @io.swagger.annotations.ApiResponse(code = 200, message = "successful operation", response = String.class), @io.swagger.annotations.ApiResponse(code = 400, message = "Invalid username/password supplied", response = String.class) }) - public Response loginUser( @NotNull @QueryParam("username") String username, @NotNull @QueryParam("password") String password,@Context SecurityContext securityContext); + public Response loginUser( @NotNull @QueryParam("username") String username, @NotNull @QueryParam("password") String password,@Context SecurityContext securityContext); @GET @Path("/logout") diff --git a/samples/server/petstore/jaxrs-resteasy/joda/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-resteasy/joda/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-resteasy/joda/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-spec/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs-spec/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs-spec/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AdditionalPropertiesClass.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AdditionalPropertiesClass.java index b82b2dcbd04..d6fd76489e7 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AdditionalPropertiesClass.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AdditionalPropertiesClass.java @@ -88,3 +88,4 @@ public class AdditionalPropertiesClass { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Animal.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Animal.java index 6ffd5169aef..7e259631425 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Animal.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Animal.java @@ -88,3 +88,4 @@ public class Animal { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AnimalFarm.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AnimalFarm.java index 200775f0167..76aa6a7ece1 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AnimalFarm.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/AnimalFarm.java @@ -51,3 +51,4 @@ public class AnimalFarm extends ArrayList { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfArrayOfNumberOnly.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfArrayOfNumberOnly.java index d040bc313e6..4da0539e57b 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfArrayOfNumberOnly.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfArrayOfNumberOnly.java @@ -69,3 +69,4 @@ public class ArrayOfArrayOfNumberOnly { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfNumberOnly.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfNumberOnly.java index 3f063fc4f50..c68e9fa5258 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfNumberOnly.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayOfNumberOnly.java @@ -69,3 +69,4 @@ public class ArrayOfNumberOnly { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayTest.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayTest.java index 5ffb95ac306..94765ef5543 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayTest.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ArrayTest.java @@ -107,3 +107,4 @@ public class ArrayTest { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Capitalization.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Capitalization.java index 70284657096..21717ec8fbf 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Capitalization.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Capitalization.java @@ -162,3 +162,4 @@ public class Capitalization { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Cat.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Cat.java index 595d1dbe434..e9aeb143274 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Cat.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Cat.java @@ -67,3 +67,4 @@ public class Cat extends Animal { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Category.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Category.java index 6e5c714eabb..b952a63be1b 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Category.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Category.java @@ -85,3 +85,4 @@ public class Category { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ClassModel.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ClassModel.java index cd0d3976c19..eec5c30b85b 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ClassModel.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ClassModel.java @@ -70,3 +70,4 @@ public class ClassModel { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Client.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Client.java index 01f90a6aaeb..44c39a573a6 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Client.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Client.java @@ -66,3 +66,4 @@ public class Client { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Dog.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Dog.java index ec714a5ac76..f61f64d1719 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Dog.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Dog.java @@ -67,3 +67,4 @@ public class Dog extends Animal { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumArrays.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumArrays.java index 8598203f8e3..c744c680622 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumArrays.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumArrays.java @@ -149,3 +149,4 @@ public enum ArrayEnumEnum { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumTest.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumTest.java index 25e07279e3c..addca30dffc 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumTest.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/EnumTest.java @@ -217,3 +217,4 @@ public enum EnumNumberEnum { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/FormatTest.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/FormatTest.java index 7f4795dc836..a2f6796aac2 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/FormatTest.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/FormatTest.java @@ -312,3 +312,4 @@ public class FormatTest { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/HasOnlyReadOnly.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/HasOnlyReadOnly.java index 35ca368638b..99d6d6878d0 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/HasOnlyReadOnly.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/HasOnlyReadOnly.java @@ -85,3 +85,4 @@ public class HasOnlyReadOnly { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MapTest.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MapTest.java index 4fdb6fde502..8db169a3d87 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MapTest.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MapTest.java @@ -119,3 +119,4 @@ public enum InnerEnum { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MixedPropertiesAndAdditionalPropertiesClass.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MixedPropertiesAndAdditionalPropertiesClass.java index f45bb41c229..9ad5a114a9e 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MixedPropertiesAndAdditionalPropertiesClass.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/MixedPropertiesAndAdditionalPropertiesClass.java @@ -110,3 +110,4 @@ public class MixedPropertiesAndAdditionalPropertiesClass { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Model200Response.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Model200Response.java index b769248fdb7..4a947fbbc7d 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Model200Response.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Model200Response.java @@ -89,3 +89,4 @@ public class Model200Response { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelApiResponse.java index d24804ea644..120ace8adf0 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelApiResponse.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelApiResponse.java @@ -104,3 +104,4 @@ public class ModelApiResponse { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelReturn.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelReturn.java index a2cbfa1ad3f..b664537c177 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelReturn.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ModelReturn.java @@ -70,3 +70,4 @@ public class ModelReturn { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Name.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Name.java index 0ee38475acb..e213bff1254 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Name.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Name.java @@ -128,3 +128,4 @@ public class Name { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/NumberOnly.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/NumberOnly.java index 7d8b5542bae..17f57898019 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/NumberOnly.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/NumberOnly.java @@ -67,3 +67,4 @@ public class NumberOnly { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Order.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Order.java index b1f062c1f45..25c8a9e7bed 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Order.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Order.java @@ -194,3 +194,4 @@ public enum StatusEnum { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/OuterComposite.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/OuterComposite.java index ad672a04dee..87db18f4d41 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/OuterComposite.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/OuterComposite.java @@ -105,3 +105,4 @@ public class OuterComposite { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Pet.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Pet.java index 983e4051114..a053cb084ca 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Pet.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Pet.java @@ -199,3 +199,4 @@ public enum StatusEnum { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ReadOnlyFirst.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ReadOnlyFirst.java index 695f9121060..7cf10d76cf9 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ReadOnlyFirst.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/ReadOnlyFirst.java @@ -85,3 +85,4 @@ public class ReadOnlyFirst { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/SpecialModelName.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/SpecialModelName.java index 56c2317f360..48bb59e4ee9 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/SpecialModelName.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/SpecialModelName.java @@ -66,3 +66,4 @@ public class SpecialModelName { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Tag.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Tag.java index ddb0f505aa9..772bf5d6ba8 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Tag.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/Tag.java @@ -85,3 +85,4 @@ public class Tag { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/User.java b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/User.java index 8a8c69c5bd4..41ffe5e5930 100644 --- a/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/User.java +++ b/samples/server/petstore/jaxrs-spec/src/gen/java/io/swagger/model/User.java @@ -200,3 +200,4 @@ public class User { return o.toString().replace("\n", "\n "); } } + diff --git a/samples/server/petstore/jaxrs-spec/swagger.json b/samples/server/petstore/jaxrs-spec/swagger.json index 32931cdbf7c..d7bb46fa9a3 100644 --- a/samples/server/petstore/jaxrs-spec/swagger.json +++ b/samples/server/petstore/jaxrs-spec/swagger.json @@ -108,8 +108,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] + "enum" : [ "available", "pending", "sold" ], + "default" : "available" }, "collectionFormat" : "csv" } ], @@ -650,8 +650,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "$", - "enum" : [ ">", "$" ] + "enum" : [ ">", "$" ], + "default" : "$" } }, { "name" : "enum_form_string", @@ -669,8 +669,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "$", - "enum" : [ ">", "$" ] + "enum" : [ ">", "$" ], + "default" : "$" } }, { "name" : "enum_header_string", @@ -688,8 +688,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "$", - "enum" : [ ">", "$" ] + "enum" : [ ">", "$" ], + "default" : "$" } }, { "name" : "enum_query_string", diff --git a/samples/server/petstore/jaxrs/jersey1/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs/jersey1/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs/jersey1/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/jaxrs/jersey2/.swagger-codegen/VERSION b/samples/server/petstore/jaxrs/jersey2/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/jaxrs/jersey2/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/lumen/.swagger-codegen/VERSION b/samples/server/petstore/lumen/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/lumen/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/nancyfx/.swagger-codegen/VERSION b/samples/server/petstore/nancyfx/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/nancyfx/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/nodejs-google-cloud-functions/.swagger-codegen/VERSION b/samples/server/petstore/nodejs-google-cloud-functions/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/nodejs-google-cloud-functions/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml b/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml index ced8e85705b..a2b8cd0f5cc 100644 --- a/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml +++ b/samples/server/petstore/nodejs-google-cloud-functions/api/swagger.yaml @@ -108,11 +108,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: diff --git a/samples/server/petstore/nodejs/.swagger-codegen/VERSION b/samples/server/petstore/nodejs/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/nodejs/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/nodejs/api/swagger.yaml b/samples/server/petstore/nodejs/api/swagger.yaml index ced8e85705b..a2b8cd0f5cc 100644 --- a/samples/server/petstore/nodejs/api/swagger.yaml +++ b/samples/server/petstore/nodejs/api/swagger.yaml @@ -108,11 +108,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: diff --git a/samples/server/petstore/rails5/.swagger-codegen/VERSION b/samples/server/petstore/rails5/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/rails5/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/scalatra/.swagger-codegen/VERSION b/samples/server/petstore/scalatra/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/scalatra/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/silex/.swagger-codegen/VERSION b/samples/server/petstore/silex/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/silex/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/sinatra/.swagger-codegen/VERSION b/samples/server/petstore/sinatra/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/sinatra/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/sinatra/swagger.yaml b/samples/server/petstore/sinatra/swagger.yaml index f555f2c06b1..60c76985c52 100644 --- a/samples/server/petstore/sinatra/swagger.yaml +++ b/samples/server/petstore/sinatra/swagger.yaml @@ -106,11 +106,11 @@ paths: type: "array" items: type: "string" - default: "available" enum: - "available" - "pending" - "sold" + default: "available" collectionFormat: "csv" responses: 200: diff --git a/samples/server/petstore/slim/.swagger-codegen/VERSION b/samples/server/petstore/slim/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/slim/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc-j8-async/.swagger-codegen/VERSION b/samples/server/petstore/spring-mvc-j8-async/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/spring-mvc-j8-async/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc/.swagger-codegen/VERSION b/samples/server/petstore/spring-mvc/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/spring-mvc/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-beanvalidation/.swagger-codegen/VERSION b/samples/server/petstore/springboot-beanvalidation/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/springboot-beanvalidation/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-delegate-j8/.swagger-codegen/VERSION b/samples/server/petstore/springboot-delegate-j8/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/springboot-delegate-j8/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-delegate/.swagger-codegen/VERSION b/samples/server/petstore/springboot-delegate/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/springboot-delegate/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot-implicitHeaders/.swagger-codegen/VERSION b/samples/server/petstore/springboot-implicitHeaders/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/springboot-implicitHeaders/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/springboot/.swagger-codegen/VERSION b/samples/server/petstore/springboot/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/springboot/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/undertow/.swagger-codegen/VERSION b/samples/server/petstore/undertow/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/undertow/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/undertow/src/main/resources/config/swagger.json b/samples/server/petstore/undertow/src/main/resources/config/swagger.json index 25192459c61..3446ff8eac8 100644 --- a/samples/server/petstore/undertow/src/main/resources/config/swagger.json +++ b/samples/server/petstore/undertow/src/main/resources/config/swagger.json @@ -112,8 +112,8 @@ "type" : "array", "items" : { "type" : "string", - "default" : "available", - "enum" : [ "available", "pending", "sold" ] + "enum" : [ "available", "pending", "sold" ], + "default" : "available" }, "collectionFormat" : "csv" } ], From e66eceeaaaed35dc580031ca37650a261d76f391 Mon Sep 17 00:00:00 2001 From: Sebastiano Miano Date: Wed, 14 Jun 2017 16:40:00 +0200 Subject: [PATCH 08/17] [C++] Server Stub Code Generator based on Pistache (#5838) * Added C++ generator for Pistache * Revert of CodegenOperation * Updated template * Removed isRestful from method declaration * Updated httpMethod variable * Changed isRestfulCreate --- bin/pistache-server-petstore.sh | 31 ++ .../io/swagger/codegen/CodegenOperation.java | 9 +- .../languages/PistacheServerCodegen.java | 412 ++++++++++++++++++ .../services/io.swagger.codegen.CodegenConfig | 1 + .../resources/pistache-server/README.mustache | 50 +++ .../pistache-server/api-header.mustache | 74 ++++ .../pistache-server/api-impl-header.mustache | 52 +++ .../pistache-server/api-impl-source.mustache | 33 ++ .../pistache-server/api-source.mustache | 108 +++++ .../resources/pistache-server/cmake.mustache | 48 ++ .../pistache-server/licenseInfo.mustache | 11 + .../pistache-server/main-api-server.mustache | 21 + .../pistache-server/model-header.mustache | 68 +++ .../pistache-server/model-source.mustache | 144 ++++++ .../pistache-server/modelbase-header.mustache | 45 ++ .../pistache-server/modelbase-source.mustache | 54 +++ .../pistache-server/.swagger-codegen-ignore | 23 + .../pistache-server/.swagger-codegen/VERSION | 1 + .../petstore/pistache-server/CMakeLists.txt | 56 +++ .../pistache-server/PetApiMainServer.cpp | 29 ++ .../server/petstore/pistache-server/README.md | 50 +++ .../pistache-server/StoreApiMainServer.cpp | 29 ++ .../pistache-server/UserApiMainServer.cpp | 29 ++ .../petstore/pistache-server/api/PetApi.cpp | 177 ++++++++ .../petstore/pistache-server/api/PetApi.h | 144 ++++++ .../petstore/pistache-server/api/StoreApi.cpp | 117 +++++ .../petstore/pistache-server/api/StoreApi.h | 104 +++++ .../petstore/pistache-server/api/UserApi.cpp | 186 ++++++++ .../petstore/pistache-server/api/UserApi.h | 146 +++++++ .../pistache-server/impl/PetApiImpl.cpp | 55 +++ .../pistache-server/impl/PetApiImpl.h | 64 +++ .../pistache-server/impl/StoreApiImpl.cpp | 43 ++ .../pistache-server/impl/StoreApiImpl.h | 60 +++ .../pistache-server/impl/UserApiImpl.cpp | 55 +++ .../pistache-server/impl/UserApiImpl.h | 64 +++ .../pistache-server/model/ApiResponse.cpp | 138 ++++++ .../pistache-server/model/ApiResponse.h | 88 ++++ .../pistache-server/model/Category.cpp | 110 +++++ .../petstore/pistache-server/model/Category.h | 79 ++++ .../pistache-server/model/ModelBase.cpp | 66 +++ .../pistache-server/model/ModelBase.h | 57 +++ .../petstore/pistache-server/model/Order.cpp | 219 ++++++++++ .../petstore/pistache-server/model/Order.h | 115 +++++ .../petstore/pistache-server/model/Pet.cpp | 222 ++++++++++ .../petstore/pistache-server/model/Pet.h | 112 +++++ .../petstore/pistache-server/model/Tag.cpp | 110 +++++ .../petstore/pistache-server/model/Tag.h | 79 ++++ .../petstore/pistache-server/model/User.cpp | 277 ++++++++++++ .../petstore/pistache-server/model/User.h | 133 ++++++ 49 files changed, 4393 insertions(+), 5 deletions(-) create mode 100755 bin/pistache-server-petstore.sh create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PistacheServerCodegen.java create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/README.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/api-header.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/api-impl-header.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/api-impl-source.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/api-source.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/cmake.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/licenseInfo.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/main-api-server.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/model-header.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/model-source.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/modelbase-header.mustache create mode 100644 modules/swagger-codegen/src/main/resources/pistache-server/modelbase-source.mustache create mode 100644 samples/server/petstore/pistache-server/.swagger-codegen-ignore create mode 100644 samples/server/petstore/pistache-server/.swagger-codegen/VERSION create mode 100644 samples/server/petstore/pistache-server/CMakeLists.txt create mode 100644 samples/server/petstore/pistache-server/PetApiMainServer.cpp create mode 100644 samples/server/petstore/pistache-server/README.md create mode 100644 samples/server/petstore/pistache-server/StoreApiMainServer.cpp create mode 100644 samples/server/petstore/pistache-server/UserApiMainServer.cpp create mode 100644 samples/server/petstore/pistache-server/api/PetApi.cpp create mode 100644 samples/server/petstore/pistache-server/api/PetApi.h create mode 100644 samples/server/petstore/pistache-server/api/StoreApi.cpp create mode 100644 samples/server/petstore/pistache-server/api/StoreApi.h create mode 100644 samples/server/petstore/pistache-server/api/UserApi.cpp create mode 100644 samples/server/petstore/pistache-server/api/UserApi.h create mode 100644 samples/server/petstore/pistache-server/impl/PetApiImpl.cpp create mode 100644 samples/server/petstore/pistache-server/impl/PetApiImpl.h create mode 100644 samples/server/petstore/pistache-server/impl/StoreApiImpl.cpp create mode 100644 samples/server/petstore/pistache-server/impl/StoreApiImpl.h create mode 100644 samples/server/petstore/pistache-server/impl/UserApiImpl.cpp create mode 100644 samples/server/petstore/pistache-server/impl/UserApiImpl.h create mode 100644 samples/server/petstore/pistache-server/model/ApiResponse.cpp create mode 100644 samples/server/petstore/pistache-server/model/ApiResponse.h create mode 100644 samples/server/petstore/pistache-server/model/Category.cpp create mode 100644 samples/server/petstore/pistache-server/model/Category.h create mode 100644 samples/server/petstore/pistache-server/model/ModelBase.cpp create mode 100644 samples/server/petstore/pistache-server/model/ModelBase.h create mode 100644 samples/server/petstore/pistache-server/model/Order.cpp create mode 100644 samples/server/petstore/pistache-server/model/Order.h create mode 100644 samples/server/petstore/pistache-server/model/Pet.cpp create mode 100644 samples/server/petstore/pistache-server/model/Pet.h create mode 100644 samples/server/petstore/pistache-server/model/Tag.cpp create mode 100644 samples/server/petstore/pistache-server/model/Tag.h create mode 100644 samples/server/petstore/pistache-server/model/User.cpp create mode 100644 samples/server/petstore/pistache-server/model/User.h diff --git a/bin/pistache-server-petstore.sh b/bin/pistache-server-petstore.sh new file mode 100755 index 00000000000..4a2667a5f81 --- /dev/null +++ b/bin/pistache-server-petstore.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +SCRIPT="$0" + +while [ -h "$SCRIPT" ] ; do + ls=`ls -ld "$SCRIPT"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + SCRIPT="$link" + else + SCRIPT=`dirname "$SCRIPT"`/"$link" + fi +done + +if [ ! -d "${APP_DIR}" ]; then + APP_DIR=`dirname "$SCRIPT"`/.. + APP_DIR=`cd "${APP_DIR}"; pwd` +fi + +executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar" + +if [ ! -f "$executable" ] +then + mvn clean package +fi + +# if you've executed sbt assembly previously it will use that instead. +export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" +ags="$@ generate -l pistache-server -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/pistache-server" + +java $JAVA_OPTS -jar $executable $ags diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java index 853a8ce778a..8270a8fc4a8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java @@ -117,7 +117,7 @@ public class CodegenOperation { * @return true if act as Restful show method, false otherwise */ public boolean isRestfulShow() { - return "GET".equals(httpMethod) && isMemberPath(); + return "GET".equalsIgnoreCase(httpMethod) && isMemberPath(); } /** @@ -126,7 +126,7 @@ public class CodegenOperation { * @return true if act as Restful create method, false otherwise */ public boolean isRestfulCreate() { - return "POST".equals(httpMethod) && "".equals(pathWithoutBaseName()); + return "POST".equalsIgnoreCase(httpMethod) && "".equals(pathWithoutBaseName()); } /** @@ -135,7 +135,7 @@ public class CodegenOperation { * @return true if act as Restful update method, false otherwise */ public boolean isRestfulUpdate() { - return Arrays.asList("PUT", "PATCH").contains(httpMethod) && isMemberPath(); + return Arrays.asList("PUT", "PATCH").contains(httpMethod.toUpperCase()) && isMemberPath(); } /** @@ -144,7 +144,7 @@ public class CodegenOperation { * @return true if act as Restful destroy method, false otherwise */ public boolean isRestfulDestroy() { - return "DELETE".equals(httpMethod) && isMemberPath(); + return "DELETE".equalsIgnoreCase(httpMethod) && isMemberPath(); } /** @@ -172,7 +172,6 @@ public class CodegenOperation { */ private boolean isMemberPath() { if (pathParams.size() != 1) return false; - String id = pathParams.get(0).baseName; return ("/{" + id + "}").equals(pathWithoutBaseName()); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PistacheServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PistacheServerCodegen.java new file mode 100644 index 00000000000..516f0267f9b --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PistacheServerCodegen.java @@ -0,0 +1,412 @@ +package io.swagger.codegen.languages; + + +import io.swagger.codegen.*; +import io.swagger.models.Model; +import io.swagger.models.Operation; +import io.swagger.models.Response; +import io.swagger.models.Swagger; +import io.swagger.models.properties.*; + +import javax.validation.constraints.Null; +import java.util.*; + +public class PistacheServerCodegen extends DefaultCodegen implements CodegenConfig { + protected String implFolder = "impl"; + + @Override + public CodegenType getTag() { + return CodegenType.SERVER; + } + + @Override + public String getName() { + return "pistache-server"; + } + + @Override + public String getHelp() { + return "Generates a C++ API server (based on Pistache)"; + } + + public PistacheServerCodegen() { + super(); + + apiPackage = "io.swagger.server.api"; + modelPackage = "io.swagger.server.model"; + + modelTemplateFiles.put("model-header.mustache", ".h"); + modelTemplateFiles.put("model-source.mustache", ".cpp"); + + apiTemplateFiles.put("api-header.mustache", ".h"); + apiTemplateFiles.put("api-source.mustache", ".cpp"); + apiTemplateFiles.put("api-impl-header.mustache", ".h"); + apiTemplateFiles.put("api-impl-source.mustache", ".cpp"); + apiTemplateFiles.put("main-api-server.mustache", ".cpp"); + + embeddedTemplateDir = templateDir = "pistache-server"; + + cliOptions.clear(); + + reservedWords = new HashSet<>(); + + supportingFiles.add(new SupportingFile("modelbase-header.mustache", "model", "ModelBase.h")); + supportingFiles.add(new SupportingFile("modelbase-source.mustache", "model", "ModelBase.cpp")); + supportingFiles.add(new SupportingFile("cmake.mustache", "", "CMakeLists.txt")); + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + + languageSpecificPrimitives = new HashSet( + Arrays.asList("int", "char", "bool", "long", "float", "double", "int32_t", "int64_t")); + + typeMapping = new HashMap(); + typeMapping.put("date", "std::string"); + typeMapping.put("DateTime", "std::string"); + typeMapping.put("string", "std::string"); + typeMapping.put("integer", "int32_t"); + typeMapping.put("long", "int64_t"); + typeMapping.put("boolean", "bool"); + typeMapping.put("array", "std::vector"); + typeMapping.put("map", "std::map"); + typeMapping.put("file", "std::string"); + typeMapping.put("object", "Object"); + typeMapping.put("binary", "std::string"); + typeMapping.put("number", "double"); + typeMapping.put("UUID", "std::string"); + + super.importMapping = new HashMap(); + importMapping.put("std::vector", "#include "); + importMapping.put("std::map", "#include "); + importMapping.put("std::string", "#include "); + importMapping.put("Object", "#include \"Object.h\""); + } + + @Override + public void processOpts() { + super.processOpts(); + + additionalProperties.put("modelNamespaceDeclarations", modelPackage.split("\\.")); + additionalProperties.put("modelNamespace", modelPackage.replaceAll("\\.", "::")); + additionalProperties.put("apiNamespaceDeclarations", apiPackage.split("\\.")); + additionalProperties.put("apiNamespace", apiPackage.replaceAll("\\.", "::")); + } + + /** + * Escapes a reserved word as defined in the `reservedWords` array. Handle + * escaping those terms here. This logic is only called if a variable + * matches the reseved words + * + * @return the escaped term + */ + @Override + public String escapeReservedWord(String name) { + return "_" + name; // add an underscore to the name + } + + @Override + public String toModelImport(String name) { + if (importMapping.containsKey(name)) { + return importMapping.get(name); + } else { + return "#include \"" + name + ".h\""; + } + } + + @Override + public CodegenModel fromModel(String name, Model model, Map allDefinitions) { + CodegenModel codegenModel = super.fromModel(name, model, allDefinitions); + + Set oldImports = codegenModel.imports; + codegenModel.imports = new HashSet<>(); + for (String imp : oldImports) { + String newImp = toModelImport(imp); + if (!newImp.isEmpty()) { + codegenModel.imports.add(newImp); + } + } + + return codegenModel; + } + + @Override + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, + Map definitions, Swagger swagger) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, definitions, swagger); + + if (operation.getResponses() != null && !operation.getResponses().isEmpty()) { + Response methodResponse = findMethodResponse(operation.getResponses()); + + if (methodResponse != null) { + if (methodResponse.getSchema() != null) { + CodegenProperty cm = fromProperty("response", methodResponse.getSchema()); + op.vendorExtensions.put("x-codegen-response", cm); + if(cm.datatype == "HttpContent") + { + op.vendorExtensions.put("x-codegen-response-ishttpcontent", true); + } + } + } + } + + String pathForPistache = path.replaceAll("\\{(.*?)}", ":$1"); + op.vendorExtensions.put("x-codegen-pistache-path", pathForPistache); + + return op; + } + + @SuppressWarnings("unchecked") + @Override + public Map postProcessOperations(Map objs) { + Map operations = (Map) objs.get("operations"); + String classname = (String) operations.get("classname"); + operations.put("classnameSnakeUpperCase", DefaultCodegen.underscore(classname).toUpperCase()); + operations.put("classnameSnakeLowerCase", DefaultCodegen.underscore(classname).toLowerCase()); + + List operationList = (List) operations.get("operation"); + for (CodegenOperation op : operationList) { + boolean consumeJson = false; + boolean isParsingSupported = true; + if (op.bodyParam != null) { + if (op.bodyParam.vendorExtensions == null) { + op.bodyParam.vendorExtensions = new HashMap<>(); + } + + op.bodyParam.vendorExtensions.put("x-codegen-pistache-isStringOrDate", op.bodyParam.isString || op.bodyParam.isDate); + } + if(op.consumes != null) { + for (Map consume : op.consumes) { + if (consume.get("mediaType") != null && consume.get("mediaType").equals("application/json")) { + consumeJson = true; + } + } + } + + op.httpMethod = op.httpMethod.substring(0, 1).toUpperCase() + op.httpMethod.substring(1).toLowerCase(); + + for(CodegenParameter param : op.allParams){ + if (param.isFormParam) isParsingSupported=false; + if (param.isFile) isParsingSupported=false; + if (param.isCookieParam) isParsingSupported=false; + + //TODO: This changes the info about the real type but it is needed to parse the header params + if (param.isHeaderParam) { + param.dataType = "Optional"; + param.baseType = "Optional"; + } else if(param.isQueryParam){ + if(param.isPrimitiveType) { + param.dataType = "Optional<" + param.dataType + ">"; + } else { + param.dataType = "Optional<" + param.baseType + ">"; + param.baseType = "Optional<" + param.baseType + ">"; + } + } + } + + if (op.vendorExtensions == null) { + op.vendorExtensions = new HashMap<>(); + } + op.vendorExtensions.put("x-codegen-pistache-consumesJson", consumeJson); + op.vendorExtensions.put("x-codegen-pistache-isParsingSupported", isParsingSupported); + + + + } + + return objs; + } + + @Override + public String toModelFilename(String name) { + return initialCaps(name); + } + + @Override + public String apiFilename(String templateName, String tag) { + String result = super.apiFilename(templateName, tag); + + if ( templateName.endsWith("impl-header.mustache") ) { + int ix = result.lastIndexOf('/'); + result = result.substring(0, ix) + result.substring(ix, result.length() - 2) + "Impl.h"; + result = result.replace(apiFileFolder(), implFileFolder()); + } else if ( templateName.endsWith("impl-source.mustache") ) { + int ix = result.lastIndexOf('/'); + result = result.substring(0, ix) + result.substring(ix, result.length() - 4) + "Impl.cpp"; + result = result.replace(apiFileFolder(), implFileFolder()); + } else if ( templateName.endsWith("api-server.mustache") ) { + int ix = result.lastIndexOf('/'); + result = result.substring(0, ix) + result.substring(ix, result.length() - 4) + "MainServer.cpp"; + result = result.replace(apiFileFolder(), outputFolder); + } + return result; + } + + @Override + public String toApiFilename(String name) { + return initialCaps(name) + "Api"; + } + + /** + * Optional - type declaration. This is a String which is used by the + * templates to instantiate your types. There is typically special handling + * for different property types + * + * @return a string value used as the `dataType` field for model templates, + * `returnType` for api templates + */ + @Override + public String getTypeDeclaration(Property p) { + String swaggerType = getSwaggerType(p); + + if (p instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) p; + Property inner = ap.getItems(); + return getSwaggerType(p) + "<" + getTypeDeclaration(inner) + ">"; + } + if (p instanceof MapProperty) { + MapProperty mp = (MapProperty) p; + Property inner = mp.getAdditionalProperties(); + return getSwaggerType(p) + ""; + } + if (p instanceof StringProperty || p instanceof DateProperty + || p instanceof DateTimeProperty || p instanceof FileProperty + || languageSpecificPrimitives.contains(swaggerType)) { + return toModelName(swaggerType); + } + + return "std::shared_ptr<" + swaggerType + ">"; + } + + @Override + public String toDefaultValue(Property p) { + if (p instanceof StringProperty) { + return "\"\""; + } else if (p instanceof BooleanProperty) { + return "false"; + } else if (p instanceof DateProperty) { + return "\"\""; + } else if (p instanceof DateTimeProperty) { + return "\"\""; + } else if (p instanceof DoubleProperty) { + return "0.0"; + } else if (p instanceof FloatProperty) { + return "0.0f"; + } else if (p instanceof IntegerProperty || p instanceof BaseIntegerProperty) { + return "0"; + } else if (p instanceof LongProperty) { + return "0L"; + } else if (p instanceof DecimalProperty) { + return "0.0"; + } else if (p instanceof MapProperty) { + MapProperty ap = (MapProperty) p; + String inner = getSwaggerType(ap.getAdditionalProperties()); + return "std::map()"; + } else if (p instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) p; + String inner = getSwaggerType(ap.getItems()); + if (!languageSpecificPrimitives.contains(inner)) { + inner = "std::shared_ptr<" + inner + ">"; + } + return "std::vector<" + inner + ">()"; + } else if (p instanceof RefProperty) { + RefProperty rp = (RefProperty) p; + return "new " + toModelName(rp.getSimpleRef()) + "()"; + } + return "nullptr"; + } + + @Override + public void postProcessParameter(CodegenParameter parameter) { + super.postProcessParameter(parameter); + + boolean isPrimitiveType = parameter.isPrimitiveType == Boolean.TRUE; + boolean isListContainer = parameter.isListContainer == Boolean.TRUE; + boolean isString = parameter.isString == Boolean.TRUE; + + if (!isPrimitiveType && !isListContainer && !isString && !parameter.dataType.startsWith("std::shared_ptr")) { + parameter.dataType = "std::shared_ptr<" + parameter.dataType + ">"; + } + } + + /** + * Location to write model files. You can use the modelPackage() as defined + * when the class is instantiated + */ + public String modelFileFolder() { + return outputFolder + "/model"; + } + + /** + * Location to write api files. You can use the apiPackage() as defined when + * the class is instantiated + */ + @Override + public String apiFileFolder() { + return outputFolder + "/api"; + } + + private String implFileFolder() { + return outputFolder + "/" + implFolder; + } + + /** + * Optional - swagger type conversion. This is used to map swagger types in + * a `Property` into either language specific types via `typeMapping` or + * into complex models if there is not a mapping. + * + * @return a string value of the type or complex model for this property + * @see io.swagger.models.properties.Property + */ + @Override + public String getSwaggerType(Property p) { + String swaggerType = super.getSwaggerType(p); + String type = null; + if (typeMapping.containsKey(swaggerType)) { + type = typeMapping.get(swaggerType); + if (languageSpecificPrimitives.contains(type)) + return toModelName(type); + } else + type = swaggerType; + return toModelName(type); + } + + @Override + public String toModelName(String type) { + if (typeMapping.keySet().contains(type) || typeMapping.values().contains(type) + || importMapping.values().contains(type) || defaultIncludes.contains(type) + || languageSpecificPrimitives.contains(type)) { + return type; + } else { + return Character.toUpperCase(type.charAt(0)) + type.substring(1); + } + } + + @Override + public String toVarName(String name) { + if (typeMapping.keySet().contains(name) || typeMapping.values().contains(name) + || importMapping.values().contains(name) || defaultIncludes.contains(name) + || languageSpecificPrimitives.contains(name)) { + return name; + } + + if (name.length() > 1) { + return Character.toUpperCase(name.charAt(0)) + name.substring(1); + } + + return name; + } + + @Override + public String toApiName(String type) { + return Character.toUpperCase(type.charAt(0)) + type.substring(1) + "Api"; + } + + @Override + public String escapeQuotationMark(String input) { + // remove " to avoid code injection + return input.replace("\"", ""); + } + + @Override + public String escapeUnsafeCharacters(String input) { + return input.replace("*/", "*_/").replace("/*", "/_*"); + } +} diff --git a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig index b4d8ed733ca..aaa9f782731 100644 --- a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig +++ b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig @@ -42,6 +42,7 @@ io.swagger.codegen.languages.NodeJSServerCodegen io.swagger.codegen.languages.ObjcClientCodegen io.swagger.codegen.languages.PerlClientCodegen io.swagger.codegen.languages.PhpClientCodegen +io.swagger.codegen.languages.PistacheServerCodegen io.swagger.codegen.languages.PythonClientCodegen io.swagger.codegen.languages.Qt5CPPGenerator io.swagger.codegen.languages.Rails5ServerCodegen diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/README.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/README.mustache new file mode 100644 index 00000000000..f2ef56d8b5b --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/README.mustache @@ -0,0 +1,50 @@ +# REST API Server for {{appName}} + +## Overview +This API Server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. +It uses the [Pistache](https://github.com/oktal/pistache) Framework. + + +## Files organization +The Pistache C++ REST server generator creates three folders: +- `api`: This folder contains the handlers for each method specified in the swagger definition. Every handler extracts +the path and body parameters (if any) from the requests and tries to parse and possibly validate them. +Once this step is completed, the main API class calls the corresponding abstract method that should be implemented +by the developer (a basic implementation is provided under the `impl` folder) +- `impl`: As written above, the implementation folder contains, for each API, the corresponding implementation class, +which extends the main API class and implements the abstract methods. +Every method receives the path and body parameters as constant reference variables and a reference to the response +object, that should be filled with the right response and sent at the end of the method with the command: +response.send(returnCode, responseBody, [mimeType]) +- `model`: This folder contains the corresponding class for every object schema found in the swagger specification. + +The main folder contains also a file with a main that can be used to start the server. +Of course, is you should customize this file based on your needs + +## Installation +First of all, you need to download and install the libraries listed [here](#libraries-required). + +Once the libraries are installed, in order to compile and run the server please follow the steps below: +```bash +mkdir build +cd build +cmake .. +make +``` + +Once compiled run the server: + +```bash +cd build +./server +``` + +## Libraries required +- [pistache](http://pistache.io/quickstart) +- [JSON for Modern C++](https://github.com/nlohmann/json/#integration): Please download the `json.hpp` file and +put it under the model folder + +## Namespaces +io::swagger::server::api + +io::swagger::server::model diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/api-header.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/api-header.mustache new file mode 100644 index 00000000000..71a25b54225 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/api-header.mustache @@ -0,0 +1,74 @@ +{{>licenseInfo}} +{{#operations}}/* + * {{classname}}.h + * + * {{description}} + */ + +#ifndef {{classname}}_H_ +#define {{classname}}_H_ + +{{{defaultInclude}}} +#include +#include +#include +#include + +{{#imports}}{{{import}}} +{{/imports}} + +{{#apiNamespaceDeclarations}} +namespace {{this}} { +{{/apiNamespaceDeclarations}} + +using namespace {{modelNamespace}}; + +class {{declspec}} {{classname}} { +public: + {{classname}}(Net::Address addr); + virtual ~{{classname}}() {}; + void init(size_t thr); + void start(); + void shutdown(); + + const std::string base = "{{basePathWithoutHost}}"; + +private: + void setupRoutes(); + + {{#operation}} + void {{operationIdSnakeCase}}_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + {{/operation}} + void {{classnameSnakeLowerCase}}_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + + std::shared_ptr httpEndpoint; + Net::Rest::Router router; + + {{#operation}} + + /// + /// {{summary}} + /// + /// + /// {{notes}} + /// + {{#vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{#allParams}} + /// {{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}} + {{/allParams}} + virtual void {{operationIdSnakeCase}}({{#allParams}}const {{#isPrimitiveType}}{{{dataType}}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{{baseType}}}{{/isPrimitiveType}} &{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Net::Http::ResponseWriter &response) = 0; + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{^vendorExtensions.x-codegen-pistache-isParsingSupported}} + virtual void {{operationIdSnakeCase}}(const Net::Rest::Request &request, Net::Http::ResponseWriter &response) = 0; + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{/operation}} + +}; + +{{#apiNamespaceDeclarations}} +} +{{/apiNamespaceDeclarations}} + +#endif /* {{classname}}_H_ */ + +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-header.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-header.mustache new file mode 100644 index 00000000000..aed4920efdb --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-header.mustache @@ -0,0 +1,52 @@ +{{>licenseInfo}} + +{{#operations}}/* +* {{classname}}Impl.h +* +* {{description}} +*/ + +#ifndef {{classnameSnakeUpperCase}}_IMPL_H_ +#define {{classnameSnakeUpperCase}}_IMPL_H_ + +{{{defaultInclude}}} +#include +#include +#include +#include + +#include <{{classname}}.h> + +{{#imports}}{{{import}}} +{{/imports}} + +{{#apiNamespaceDeclarations}} +namespace {{this}} { +{{/apiNamespaceDeclarations}} + +using namespace {{modelNamespace}}; + +class {{classname}}Impl : public {{apiNamespace}}::{{classname}} { +public: + {{classname}}Impl(Net::Address addr); + ~{{classname}}Impl() { }; + + {{#operation}} + {{#vendorExtensions.x-codegen-pistache-isParsingSupported}} + void {{operationIdSnakeCase}}({{#allParams}}const {{#isPrimitiveType}}{{{dataType}}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{{baseType}}}{{/isPrimitiveType}} &{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Net::Http::ResponseWriter &response); + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{^vendorExtensions.x-codegen-pistache-isParsingSupported}} + void {{operationIdSnakeCase}}(const Net::Rest::Request &request, Net::Http::ResponseWriter &response); + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{/operation}} + +}; + +{{#apiNamespaceDeclarations}} +} +{{/apiNamespaceDeclarations}} + +{{/operations}} + + +#endif \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-source.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-source.mustache new file mode 100644 index 00000000000..8e4771bdd13 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/api-impl-source.mustache @@ -0,0 +1,33 @@ +{{>licenseInfo}} +{{#operations}} + +#include "{{classname}}Impl.h" + +{{#apiNamespaceDeclarations}} +namespace {{this}} { +{{/apiNamespaceDeclarations}} + +using namespace {{modelNamespace}}; + +{{classname}}Impl::{{classname}}Impl(Net::Address addr) + : {{classname}}(addr) + { } + +{{#operation}} +{{#vendorExtensions.x-codegen-pistache-isParsingSupported}} +void {{classname}}Impl::{{operationIdSnakeCase}}({{#allParams}}const {{#isPrimitiveType}}{{{dataType}}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{{baseType}}}{{/isPrimitiveType}} &{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +{{/vendorExtensions.x-codegen-pistache-isParsingSupported}} +{{^vendorExtensions.x-codegen-pistache-isParsingSupported}} +void {{classname}}Impl::{{operationIdSnakeCase}}(const Net::Rest::Request &request, Net::Http::ResponseWriter &response){ + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +{{/vendorExtensions.x-codegen-pistache-isParsingSupported}} +{{/operation}} + +{{#apiNamespaceDeclarations}} +} +{{/apiNamespaceDeclarations}} + +{{/operations}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/api-source.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/api-source.mustache new file mode 100644 index 00000000000..1413cb69cdb --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/api-source.mustache @@ -0,0 +1,108 @@ +{{>licenseInfo}} +{{#operations}} + +#include "{{classname}}.h" + +{{#apiNamespaceDeclarations}} +namespace {{this}} { +{{/apiNamespaceDeclarations}} + +using namespace {{modelNamespace}}; + +{{classname}}::{{classname}}(Net::Address addr) + : httpEndpoint(std::make_shared(addr)) +{ }; + +void {{classname}}::init(size_t thr = 2) { + auto opts = Net::Http::Endpoint::options() + .threads(thr) + .flags(Net::Tcp::Options::InstallSignalHandler); + httpEndpoint->init(opts); + setupRoutes(); +} + +void {{classname}}::start() { + httpEndpoint->setHandler(router.handler()); + httpEndpoint->serve(); +} + +void {{classname}}::shutdown() { + httpEndpoint->shutdown(); +} + +void {{classname}}::setupRoutes() { + using namespace Net::Rest; + + {{#operation}} + Routes::{{httpMethod}}(router, base + "{{{vendorExtensions.x-codegen-pistache-path}}}", Routes::bind(&{{classname}}::{{operationIdSnakeCase}}_handler, this)); + {{/operation}} + + // Default handler, called when a route is not found + router.addCustomHandler(Routes::bind(&{{classname}}::{{classnameSnakeLowerCase}}_default_handler, this)); +} + +{{#operation}} +void {{classname}}::{{operationIdSnakeCase}}_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + {{#vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{#hasPathParams}} + // Getting the path params + {{#pathParams}} + auto {{paramName}} = request.param(":{{paramName}}").as<{{dataType}}>(); + {{/pathParams}} + {{/hasPathParams}}{{#hasBodyParam}} + // Getting the body param + {{#bodyParam}} + {{^isPrimitiveType}} + {{baseType}} {{paramName}};{{/isPrimitiveType}} + {{#isPrimitiveType}} + {{dataType}} {{paramName}}; + {{/isPrimitiveType}} + {{/bodyParam}} + {{/hasBodyParam}}{{#hasQueryParams}} + // Getting the query params + {{#queryParams}} + auto {{paramName}} = request.query().get("{{baseName}}"); + {{/queryParams}} + {{/hasQueryParams}}{{#hasHeaderParams}} + // Getting the header params + {{#headerParams}} + auto {{paramName}} = request.headers().tryGetRaw("{{baseName}}"); + {{/headerParams}} + {{/hasHeaderParams}} + + try { + {{#hasBodyParam}} + {{#bodyParam}} + nlohmann::json request_body = nlohmann::json::parse(request.body()); + {{^isPrimitiveType}} + {{paramName}}.fromJson(request_body); {{/isPrimitiveType}} + {{#isPrimitiveType}} + // The conversion is done automatically by the json library + {{paramName}} = request_body; + {{/isPrimitiveType}} + {{/bodyParam}} + {{/hasBodyParam}} + this->{{operationIdSnakeCase}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}response); + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + {{^vendorExtensions.x-codegen-pistache-isParsingSupported}} + try { + this->{{operationIdSnakeCase}}(request, response); + {{/vendorExtensions.x-codegen-pistache-isParsingSupported}} + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +{{/operation}} + +void {{classname}}::{{classnameSnakeLowerCase}}_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + response.send(Net::Http::Code::Not_Found, "The requested method does not exist"); +} + +{{#apiNamespaceDeclarations}} +} +{{/apiNamespaceDeclarations}} + +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/cmake.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/cmake.mustache new file mode 100644 index 00000000000..0996f6f9640 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/cmake.mustache @@ -0,0 +1,48 @@ +cmake_minimum_required (VERSION 3.2) + +project(server) + +set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -std=c++11) + +link_directories(/usr/local/lib/) + +aux_source_directory(model MODEL_SOURCES) +{{=<% %>=}} +<%#apiInfo.apis%> +<%#operations%> +file(GLOB <%classnameSnakeUpperCase%>_SOURCES +"api/<%classname%>.h" +"api/<%classname%>.cpp" +"impl/<%classname%>Impl.h" +"impl/<%classname%>Impl.cpp" +) +<%/operations%> +<%/apiInfo.apis%> + +include_directories(model) +include_directories(api) +include_directories(impl) + +<%#apiInfo.apis%> +<%#operations%> +set(<%classnameSnakeUpperCase%>_SERVER_SOURCES +<%classname%>MainServer.cpp + ${MODEL_SOURCES} + ${<%classnameSnakeUpperCase%>_SOURCES}) +<%/operations%> +<%/apiInfo.apis%> + +<%#apiInfo.apis%> +<%#operations%> +add_executable(<%classnameSnakeLowerCase%>_server +${<%classnameSnakeUpperCase%>_SERVER_SOURCES}) +<%/operations%> +<%/apiInfo.apis%> + +<%#apiInfo.apis%> +<%#operations%> +target_link_libraries(<%classnameSnakeLowerCase%>_server net) +<%/operations%> +<%/apiInfo.apis%> + +<%={{ }}=%> \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/licenseInfo.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/licenseInfo.mustache new file mode 100644 index 00000000000..aee680977df --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/licenseInfo.mustache @@ -0,0 +1,11 @@ +/** +* {{{appName}}} +* {{{appDescription}}} +* +* {{#version}}OpenAPI spec version: {{{version}}}{{/version}} +* {{#infoEmail}}Contact: {{{infoEmail}}}{{/infoEmail}} +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/main-api-server.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/main-api-server.mustache new file mode 100644 index 00000000000..d535b74a610 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/main-api-server.mustache @@ -0,0 +1,21 @@ +{{>licenseInfo}} +{{#operations}} + +#include "pistache/endpoint.h" +#include "pistache/http.h" +#include "pistache/router.h" +#include "{{classname}}Impl.h" + +using namespace {{apiNamespace}}; + +int main() { + Net::Address addr(Net::Ipv4::any(), Net::Port(8080)); + + {{classname}}Impl server(addr); + server.init(2); + server.start(); + + server.shutdown(); +} + +{{/operations}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/model-header.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/model-header.mustache new file mode 100644 index 00000000000..b63bbd78c0d --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/model-header.mustache @@ -0,0 +1,68 @@ +{{>licenseInfo}} +{{#models}}{{#model}}/* + * {{classname}}.h + * + * {{description}} + */ + +#ifndef {{classname}}_H_ +#define {{classname}}_H_ + +{{{defaultInclude}}} +#include "ModelBase.h" + +{{#imports}}{{{this}}} +{{/imports}} + +{{#modelNamespaceDeclarations}} +namespace {{this}} { +{{/modelNamespaceDeclarations}} + +/// +/// {{description}} +/// +class {{declspec}} {{classname}} + : public ModelBase +{ +public: + {{classname}}(); + virtual ~{{classname}}(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// {{classname}} members + + {{#vars}} + /// + /// {{description}} + /// + {{^isNotContainer}}{{{datatype}}}& {{getter}}(); + {{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{getter}}() const; + void {{setter}}({{{datatype}}} value); + {{/isNotContainer}}{{^required}}bool {{baseName}}IsSet() const; + void unset{{name}}(); + {{/required}} + {{/vars}} + +protected: + {{#vars}} + {{{datatype}}} m_{{name}}; + {{^required}} + bool m_{{name}}IsSet;{{/required}} + {{/vars}} +}; + +{{#modelNamespaceDeclarations}} +} +{{/modelNamespaceDeclarations}} + +#endif /* {{classname}}_H_ */ +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/model-source.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/model-source.mustache new file mode 100644 index 00000000000..69ad6dae1d0 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/model-source.mustache @@ -0,0 +1,144 @@ +{{>licenseInfo}} +{{#models}}{{#model}} + +#include "{{classname}}.h" + +{{#modelNamespaceDeclarations}} +namespace {{this}} { +{{/modelNamespaceDeclarations}} + +{{classname}}::{{classname}}() +{ + {{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}m_{{name}} = {{{defaultValue}}}; + {{/isPrimitiveType}}{{^isPrimitiveType}}{{#isString}}m_{{name}} = {{{defaultValue}}}; + {{/isString}}{{#isDateTime}}m_{{name}} = {{{defaultValue}}}; + {{/isDateTime}}{{/isPrimitiveType}}{{/isNotContainer}}{{^required}}m_{{name}}IsSet = false; + {{/required}}{{/vars}} +} + +{{classname}}::~{{classname}}() +{ +} + +void {{classname}}::validate() +{ + // TODO: implement validation +} + +nlohmann::json {{classname}}::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + {{#vars}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(m_{{name}}IsSet) + { + val["{{baseName}}"] = m_{{name}}; + } + {{/required}}{{#required}}val["{{baseName}}"] = m_{{name}}; + {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + nlohmann::json jsonArray; + for( auto& item : m_{{name}} ) + { + jsonArray.push_back(ModelBase::toJson(item)); + } + {{#required}}val["{{baseName}}"] = jsonArray; + {{/required}}{{^required}} + if(jsonArray.size() > 0) + { + val["{{baseName}}"] = jsonArray; + } + {{/required}} + } + {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(m_{{name}}IsSet) + { + val["{{baseName}}"] = ModelBase::toJson(m_{{name}}); + } + {{/required}}{{#required}}val["{{baseName}}"] = ModelBase::toJson(m_{{name}}); + {{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/vars}} + + return val; +} + +void {{classname}}::fromJson(nlohmann::json& val) +{ + {{#vars}}{{#isPrimitiveType}}{{^isListContainer}}{{^required}}if(val.find("{{baseName}}") != val.end()) + { + {{setter}}(val.at("{{baseName}}")); + } + {{/required}}{{#required}}{{setter}}(val.at("{{baseName}}")); + {{/required}}{{/isListContainer}}{{/isPrimitiveType}}{{#isListContainer}}{ + m_{{name}}.clear(); + nlohmann::json jsonArray; + {{^required}}if(val.find("{{baseName}}") != val.end()) + { + {{/required}} + for( auto& item : val["{{baseName}}"] ) + { + {{#isPrimitiveType}}m_{{name}}.push_back(item); + {{/isPrimitiveType}}{{^isPrimitiveType}}{{#items.isString}}m_{{name}}.push_back(item); + {{/items.isString}}{{^items.isString}}{{#items.isDateTime}}m_{{name}}.push_back(item); + {{/items.isDateTime}}{{^items.isDateTime}} + if(item.is_null()) + { + m_{{name}}.push_back( {{{items.datatype}}}(nullptr) ); + } + else + { + {{{items.datatype}}} newItem({{{items.defaultValue}}}); + newItem->fromJson(item); + m_{{name}}.push_back( newItem ); + } + {{/items.isDateTime}}{{/items.isString}}{{/isPrimitiveType}} + } + {{^required}} + } + {{/required}} + } + {{/isListContainer}}{{^isListContainer}}{{^isPrimitiveType}}{{^required}}if(val.find("{{baseName}}") != val.end()) + { + {{#isString}}{{setter}}(val.at("{{baseName}}")); + {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(val.at("{{baseName}}")); + {{/isDateTime}}{{^isDateTime}}if(!val["{{baseName}}"].is_null()) + { + {{{datatype}}} newItem({{{defaultValue}}}); + newItem->fromJson(val["{{baseName}}"]); + {{setter}}( newItem ); + } + {{/isDateTime}}{{/isString}} + } + {{/required}}{{#required}}{{#isString}}{{setter}}(val.at("{{baseName}}")); + {{/isString}}{{^isString}}{{#isDateTime}}{{setter}}(val.at("{{baseName}}")); + {{/isDateTime}}{{/isString}}{{/required}}{{/isPrimitiveType}}{{/isListContainer}}{{/vars}} +} + + +{{#vars}}{{^isNotContainer}}{{{datatype}}}& {{classname}}::{{getter}}() +{ + return m_{{name}}; +} +{{/isNotContainer}}{{#isNotContainer}}{{{datatype}}} {{classname}}::{{getter}}() const +{ + return m_{{name}}; +} +void {{classname}}::{{setter}}({{{datatype}}} value) +{ + m_{{name}} = value; + {{^required}}m_{{name}}IsSet = true;{{/required}} +} +{{/isNotContainer}} +{{^required}}bool {{classname}}::{{baseName}}IsSet() const +{ + return m_{{name}}IsSet; +} +void {{classname}}::unset{{name}}() +{ + m_{{name}}IsSet = false; +} +{{/required}} +{{/vars}} + +{{#modelNamespaceDeclarations}} +} +{{/modelNamespaceDeclarations}} + +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-header.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-header.mustache new file mode 100644 index 00000000000..3c18cede5ec --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-header.mustache @@ -0,0 +1,45 @@ +{{>licenseInfo}} +/* + * ModelBase.h + * + * This is the base class for all model classes + */ + +#ifndef ModelBase_H_ +#define ModelBase_H_ + +{{{defaultInclude}}} +#include "json.hpp" +#include +#include + +{{#modelNamespaceDeclarations}} +namespace {{this}} { +{{/modelNamespaceDeclarations}} + +class {{declspec}} ModelBase +{ +public: + ModelBase(); + virtual ~ModelBase(); + + virtual void validate() = 0; + + virtual nlohmann::json toJson() const = 0; + virtual void fromJson(nlohmann::json& json) = 0; + + static std::string toJson( const std::string& value ); + static std::string toJson( const std::time_t& value ); + static int32_t toJson( int32_t value ); + static int64_t toJson( int64_t value ); + static double toJson( double value ); + static bool toJson( bool value ); + static nlohmann::json toJson( std::shared_ptr content ); + +}; + +{{#modelNamespaceDeclarations}} +} +{{/modelNamespaceDeclarations}} + +#endif /* ModelBase_H_ */ diff --git a/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-source.mustache b/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-source.mustache new file mode 100644 index 00000000000..f209bb68761 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/pistache-server/modelbase-source.mustache @@ -0,0 +1,54 @@ +{{>licenseInfo}} +#include "ModelBase.h" + +{{#modelNamespaceDeclarations}} +namespace {{this}} { +{{/modelNamespaceDeclarations}} + +ModelBase::ModelBase() +{ +} +ModelBase::~ModelBase() +{ +} + +std::string ModelBase::toJson( const std::string& value ) +{ + return value; +} + +std::string ModelBase::toJson( const std::time_t& value ) +{ + char buf[sizeof "2011-10-08T07:07:09Z"]; + strftime(buf, sizeof buf, "%FT%TZ", gmtime(&value)); + return buf; +} + +int32_t ModelBase::toJson( int32_t value ) +{ + return value; +} + +int64_t ModelBase::toJson( int64_t value ) +{ + return value; +} + +double ModelBase::toJson( double value ) +{ + return value; +} + +bool ModelBase::toJson( bool value ) +{ + return value; +} + +nlohmann::json ModelBase::toJson( std::shared_ptr content ) +{ + return content.get() ? content->toJson() : nlohmann::json(); +} + +{{#modelNamespaceDeclarations}} +} +{{/modelNamespaceDeclarations}} diff --git a/samples/server/petstore/pistache-server/.swagger-codegen-ignore b/samples/server/petstore/pistache-server/.swagger-codegen-ignore new file mode 100644 index 00000000000..c5fa491b4c5 --- /dev/null +++ b/samples/server/petstore/pistache-server/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/server/petstore/pistache-server/.swagger-codegen/VERSION b/samples/server/petstore/pistache-server/.swagger-codegen/VERSION new file mode 100644 index 00000000000..7fea99011a6 --- /dev/null +++ b/samples/server/petstore/pistache-server/.swagger-codegen/VERSION @@ -0,0 +1 @@ +2.2.3-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/pistache-server/CMakeLists.txt b/samples/server/petstore/pistache-server/CMakeLists.txt new file mode 100644 index 00000000000..687df55c972 --- /dev/null +++ b/samples/server/petstore/pistache-server/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required (VERSION 3.2) + +project(server) + +set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -std=c++11) + +link_directories(/usr/local/lib/) + +aux_source_directory(model MODEL_SOURCES) +file(GLOB PET_API_SOURCES +"api/PetApi.h" +"api/PetApi.cpp" +"impl/PetApiImpl.h" +"impl/PetApiImpl.cpp" +) +file(GLOB STORE_API_SOURCES +"api/StoreApi.h" +"api/StoreApi.cpp" +"impl/StoreApiImpl.h" +"impl/StoreApiImpl.cpp" +) +file(GLOB USER_API_SOURCES +"api/UserApi.h" +"api/UserApi.cpp" +"impl/UserApiImpl.h" +"impl/UserApiImpl.cpp" +) + +include_directories(model) +include_directories(api) +include_directories(impl) + +set(PET_API_SERVER_SOURCES +PetApiMainServer.cpp + ${MODEL_SOURCES} + ${PET_API_SOURCES}) +set(STORE_API_SERVER_SOURCES +StoreApiMainServer.cpp + ${MODEL_SOURCES} + ${STORE_API_SOURCES}) +set(USER_API_SERVER_SOURCES +UserApiMainServer.cpp + ${MODEL_SOURCES} + ${USER_API_SOURCES}) + +add_executable(pet_api_server +${PET_API_SERVER_SOURCES}) +add_executable(store_api_server +${STORE_API_SERVER_SOURCES}) +add_executable(user_api_server +${USER_API_SERVER_SOURCES}) + +target_link_libraries(pet_api_server net) +target_link_libraries(store_api_server net) +target_link_libraries(user_api_server net) + diff --git a/samples/server/petstore/pistache-server/PetApiMainServer.cpp b/samples/server/petstore/pistache-server/PetApiMainServer.cpp new file mode 100644 index 00000000000..4e057331e91 --- /dev/null +++ b/samples/server/petstore/pistache-server/PetApiMainServer.cpp @@ -0,0 +1,29 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "pistache/endpoint.h" +#include "pistache/http.h" +#include "pistache/router.h" +#include "PetApiImpl.h" + +using namespace io::swagger::server::api; + +int main() { + Net::Address addr(Net::Ipv4::any(), Net::Port(8080)); + + PetApiImpl server(addr); + server.init(2); + server.start(); + + server.shutdown(); +} + diff --git a/samples/server/petstore/pistache-server/README.md b/samples/server/petstore/pistache-server/README.md new file mode 100644 index 00000000000..f40f866fa1f --- /dev/null +++ b/samples/server/petstore/pistache-server/README.md @@ -0,0 +1,50 @@ +# REST API Server for Swagger Petstore + +## Overview +This API Server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. +It uses the [Pistache](https://github.com/oktal/pistache) Framework. + + +## Files organization +The Pistache C++ REST server generator creates three folders: +- `api`: This folder contains the handlers for each method specified in the swagger definition. Every handler extracts +the path and body parameters (if any) from the requests and tries to parse and possibly validate them. +Once this step is completed, the main API class calls the corresponding abstract method that should be implemented +by the developer (a basic implementation is provided under the `impl` folder) +- `impl`: As written above, the implementation folder contains, for each API, the corresponding implementation class, +which extends the main API class and implements the abstract methods. +Every method receives the path and body parameters as constant reference variables and a reference to the response +object, that should be filled with the right response and sent at the end of the method with the command: +response.send(returnCode, responseBody, [mimeType]) +- `model`: This folder contains the corresponding class for every object schema found in the swagger specification. + +The main folder contains also a file with a main that can be used to start the server. +Of course, is you should customize this file based on your needs + +## Installation +First of all, you need to download and install the libraries listed [here](#libraries-required). + +Once the libraries are installed, in order to compile and run the server please follow the steps below: +```bash +mkdir build +cd build +cmake .. +make +``` + +Once compiled run the server: + +```bash +cd build +./server +``` + +## Libraries required +- [pistache](http://pistache.io/quickstart) +- [JSON for Modern C++](https://github.com/nlohmann/json/#integration): Please download the `json.hpp` file and +put it under the model folder + +## Namespaces +io::swagger::server::api + +io::swagger::server::model diff --git a/samples/server/petstore/pistache-server/StoreApiMainServer.cpp b/samples/server/petstore/pistache-server/StoreApiMainServer.cpp new file mode 100644 index 00000000000..f6e5fe0c2ad --- /dev/null +++ b/samples/server/petstore/pistache-server/StoreApiMainServer.cpp @@ -0,0 +1,29 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "pistache/endpoint.h" +#include "pistache/http.h" +#include "pistache/router.h" +#include "StoreApiImpl.h" + +using namespace io::swagger::server::api; + +int main() { + Net::Address addr(Net::Ipv4::any(), Net::Port(8080)); + + StoreApiImpl server(addr); + server.init(2); + server.start(); + + server.shutdown(); +} + diff --git a/samples/server/petstore/pistache-server/UserApiMainServer.cpp b/samples/server/petstore/pistache-server/UserApiMainServer.cpp new file mode 100644 index 00000000000..61a42d27412 --- /dev/null +++ b/samples/server/petstore/pistache-server/UserApiMainServer.cpp @@ -0,0 +1,29 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "pistache/endpoint.h" +#include "pistache/http.h" +#include "pistache/router.h" +#include "UserApiImpl.h" + +using namespace io::swagger::server::api; + +int main() { + Net::Address addr(Net::Ipv4::any(), Net::Port(8080)); + + UserApiImpl server(addr); + server.init(2); + server.start(); + + server.shutdown(); +} + diff --git a/samples/server/petstore/pistache-server/api/PetApi.cpp b/samples/server/petstore/pistache-server/api/PetApi.cpp new file mode 100644 index 00000000000..fc5414c94c5 --- /dev/null +++ b/samples/server/petstore/pistache-server/api/PetApi.cpp @@ -0,0 +1,177 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "PetApi.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +PetApi::PetApi(Net::Address addr) + : httpEndpoint(std::make_shared(addr)) +{ }; + +void PetApi::init(size_t thr = 2) { + auto opts = Net::Http::Endpoint::options() + .threads(thr) + .flags(Net::Tcp::Options::InstallSignalHandler); + httpEndpoint->init(opts); + setupRoutes(); +} + +void PetApi::start() { + httpEndpoint->setHandler(router.handler()); + httpEndpoint->serve(); +} + +void PetApi::shutdown() { + httpEndpoint->shutdown(); +} + +void PetApi::setupRoutes() { + using namespace Net::Rest; + + Routes::Post(router, base + "/pet", Routes::bind(&PetApi::add_pet_handler, this)); + Routes::Delete(router, base + "/pet/:petId", Routes::bind(&PetApi::delete_pet_handler, this)); + Routes::Get(router, base + "/pet/findByStatus", Routes::bind(&PetApi::find_pets_by_status_handler, this)); + Routes::Get(router, base + "/pet/findByTags", Routes::bind(&PetApi::find_pets_by_tags_handler, this)); + Routes::Get(router, base + "/pet/:petId", Routes::bind(&PetApi::get_pet_by_id_handler, this)); + Routes::Put(router, base + "/pet", Routes::bind(&PetApi::update_pet_handler, this)); + Routes::Post(router, base + "/pet/:petId", Routes::bind(&PetApi::update_pet_with_form_handler, this)); + Routes::Post(router, base + "/pet/:petId/uploadImage", Routes::bind(&PetApi::upload_file_handler, this)); + + // Default handler, called when a route is not found + router.addCustomHandler(Routes::bind(&PetApi::pet_api_default_handler, this)); +} + +void PetApi::add_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + Pet body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->add_pet(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::delete_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto petId = request.param(":petId").as(); + + // Getting the header params + auto apiKey = request.headers().tryGetRaw("api_key"); + + try { + this->delete_pet(petId, apiKey, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::find_pets_by_status_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the query params + auto status = request.query().get("status"); + + try { + this->find_pets_by_status(status, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::find_pets_by_tags_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the query params + auto tags = request.query().get("tags"); + + try { + this->find_pets_by_tags(tags, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::get_pet_by_id_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto petId = request.param(":petId").as(); + + try { + this->get_pet_by_id(petId, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::update_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + Pet body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->update_pet(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::update_pet_with_form_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + try { + this->update_pet_with_form(request, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void PetApi::upload_file_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + try { + this->upload_file(request, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} + +void PetApi::pet_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + response.send(Net::Http::Code::Not_Found, "The requested method does not exist"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/api/PetApi.h b/samples/server/petstore/pistache-server/api/PetApi.h new file mode 100644 index 00000000000..a9d31b0e64d --- /dev/null +++ b/samples/server/petstore/pistache-server/api/PetApi.h @@ -0,0 +1,144 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * PetApi.h + * + * + */ + +#ifndef PetApi_H_ +#define PetApi_H_ + + +#include +#include +#include +#include + +#include "ApiResponse.h" +#include "Pet.h" +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class PetApi { +public: + PetApi(Net::Address addr); + virtual ~PetApi() {}; + void init(size_t thr); + void start(); + void shutdown(); + + const std::string base = "/v2"; + +private: + void setupRoutes(); + + void add_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void delete_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void find_pets_by_status_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void find_pets_by_tags_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void get_pet_by_id_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void update_pet_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void update_pet_with_form_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void upload_file_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void pet_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + + std::shared_ptr httpEndpoint; + Net::Rest::Router router; + + + /// + /// Add a new pet to the store + /// + /// + /// + /// + /// Pet object that needs to be added to the store + virtual void add_pet(const Pet &body, Net::Http::ResponseWriter &response) = 0; + + /// + /// Deletes a pet + /// + /// + /// + /// + /// Pet id to delete + /// (optional) + virtual void delete_pet(const int64_t &petId, const Optional &apiKey, Net::Http::ResponseWriter &response) = 0; + + /// + /// Finds Pets by status + /// + /// + /// Multiple status values can be provided with comma separated strings + /// + /// Status values that need to be considered for filter + virtual void find_pets_by_status(const Optional &status, Net::Http::ResponseWriter &response) = 0; + + /// + /// Finds Pets by tags + /// + /// + /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + /// + /// Tags to filter by + virtual void find_pets_by_tags(const Optional &tags, Net::Http::ResponseWriter &response) = 0; + + /// + /// Find pet by ID + /// + /// + /// Returns a single pet + /// + /// ID of pet to return + virtual void get_pet_by_id(const int64_t &petId, Net::Http::ResponseWriter &response) = 0; + + /// + /// Update an existing pet + /// + /// + /// + /// + /// Pet object that needs to be added to the store + virtual void update_pet(const Pet &body, Net::Http::ResponseWriter &response) = 0; + + /// + /// Updates a pet in the store with form data + /// + /// + /// + /// + virtual void update_pet_with_form(const Net::Rest::Request &request, Net::Http::ResponseWriter &response) = 0; + + /// + /// uploads an image + /// + /// + /// + /// + virtual void upload_file(const Net::Rest::Request &request, Net::Http::ResponseWriter &response) = 0; + +}; + +} +} +} +} + +#endif /* PetApi_H_ */ + diff --git a/samples/server/petstore/pistache-server/api/StoreApi.cpp b/samples/server/petstore/pistache-server/api/StoreApi.cpp new file mode 100644 index 00000000000..10be7038aad --- /dev/null +++ b/samples/server/petstore/pistache-server/api/StoreApi.cpp @@ -0,0 +1,117 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "StoreApi.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +StoreApi::StoreApi(Net::Address addr) + : httpEndpoint(std::make_shared(addr)) +{ }; + +void StoreApi::init(size_t thr = 2) { + auto opts = Net::Http::Endpoint::options() + .threads(thr) + .flags(Net::Tcp::Options::InstallSignalHandler); + httpEndpoint->init(opts); + setupRoutes(); +} + +void StoreApi::start() { + httpEndpoint->setHandler(router.handler()); + httpEndpoint->serve(); +} + +void StoreApi::shutdown() { + httpEndpoint->shutdown(); +} + +void StoreApi::setupRoutes() { + using namespace Net::Rest; + + Routes::Delete(router, base + "/store/order/:orderId", Routes::bind(&StoreApi::delete_order_handler, this)); + Routes::Get(router, base + "/store/inventory", Routes::bind(&StoreApi::get_inventory_handler, this)); + Routes::Get(router, base + "/store/order/:orderId", Routes::bind(&StoreApi::get_order_by_id_handler, this)); + Routes::Post(router, base + "/store/order", Routes::bind(&StoreApi::place_order_handler, this)); + + // Default handler, called when a route is not found + router.addCustomHandler(Routes::bind(&StoreApi::store_api_default_handler, this)); +} + +void StoreApi::delete_order_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto orderId = request.param(":orderId").as(); + + try { + this->delete_order(orderId, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void StoreApi::get_inventory_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + try { + this->get_inventory(response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void StoreApi::get_order_by_id_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto orderId = request.param(":orderId").as(); + + try { + this->get_order_by_id(orderId, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void StoreApi::place_order_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + Order body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->place_order(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} + +void StoreApi::store_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + response.send(Net::Http::Code::Not_Found, "The requested method does not exist"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/api/StoreApi.h b/samples/server/petstore/pistache-server/api/StoreApi.h new file mode 100644 index 00000000000..0131e7dff5e --- /dev/null +++ b/samples/server/petstore/pistache-server/api/StoreApi.h @@ -0,0 +1,104 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * StoreApi.h + * + * + */ + +#ifndef StoreApi_H_ +#define StoreApi_H_ + + +#include +#include +#include +#include + +#include "Order.h" +#include +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class StoreApi { +public: + StoreApi(Net::Address addr); + virtual ~StoreApi() {}; + void init(size_t thr); + void start(); + void shutdown(); + + const std::string base = "/v2"; + +private: + void setupRoutes(); + + void delete_order_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void get_inventory_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void get_order_by_id_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void place_order_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void store_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + + std::shared_ptr httpEndpoint; + Net::Rest::Router router; + + + /// + /// Delete purchase order by ID + /// + /// + /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + /// + /// ID of the order that needs to be deleted + virtual void delete_order(const std::string &orderId, Net::Http::ResponseWriter &response) = 0; + + /// + /// Returns pet inventories by status + /// + /// + /// Returns a map of status codes to quantities + /// + virtual void get_inventory(Net::Http::ResponseWriter &response) = 0; + + /// + /// Find purchase order by ID + /// + /// + /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + /// + /// ID of pet that needs to be fetched + virtual void get_order_by_id(const int64_t &orderId, Net::Http::ResponseWriter &response) = 0; + + /// + /// Place an order for a pet + /// + /// + /// + /// + /// order placed for purchasing the pet + virtual void place_order(const Order &body, Net::Http::ResponseWriter &response) = 0; + +}; + +} +} +} +} + +#endif /* StoreApi_H_ */ + diff --git a/samples/server/petstore/pistache-server/api/UserApi.cpp b/samples/server/petstore/pistache-server/api/UserApi.cpp new file mode 100644 index 00000000000..377baba7253 --- /dev/null +++ b/samples/server/petstore/pistache-server/api/UserApi.cpp @@ -0,0 +1,186 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "UserApi.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +UserApi::UserApi(Net::Address addr) + : httpEndpoint(std::make_shared(addr)) +{ }; + +void UserApi::init(size_t thr = 2) { + auto opts = Net::Http::Endpoint::options() + .threads(thr) + .flags(Net::Tcp::Options::InstallSignalHandler); + httpEndpoint->init(opts); + setupRoutes(); +} + +void UserApi::start() { + httpEndpoint->setHandler(router.handler()); + httpEndpoint->serve(); +} + +void UserApi::shutdown() { + httpEndpoint->shutdown(); +} + +void UserApi::setupRoutes() { + using namespace Net::Rest; + + Routes::Post(router, base + "/user", Routes::bind(&UserApi::create_user_handler, this)); + Routes::Post(router, base + "/user/createWithArray", Routes::bind(&UserApi::create_users_with_array_input_handler, this)); + Routes::Post(router, base + "/user/createWithList", Routes::bind(&UserApi::create_users_with_list_input_handler, this)); + Routes::Delete(router, base + "/user/:username", Routes::bind(&UserApi::delete_user_handler, this)); + Routes::Get(router, base + "/user/:username", Routes::bind(&UserApi::get_user_by_name_handler, this)); + Routes::Get(router, base + "/user/login", Routes::bind(&UserApi::login_user_handler, this)); + Routes::Get(router, base + "/user/logout", Routes::bind(&UserApi::logout_user_handler, this)); + Routes::Put(router, base + "/user/:username", Routes::bind(&UserApi::update_user_handler, this)); + + // Default handler, called when a route is not found + router.addCustomHandler(Routes::bind(&UserApi::user_api_default_handler, this)); +} + +void UserApi::create_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + User body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->create_user(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::create_users_with_array_input_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + User body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->create_users_with_array_input(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::create_users_with_list_input_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the body param + User body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->create_users_with_list_input(body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::delete_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto username = request.param(":username").as(); + + try { + this->delete_user(username, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::get_user_by_name_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto username = request.param(":username").as(); + + try { + this->get_user_by_name(username, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::login_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + // Getting the query params + auto username = request.query().get("username"); + auto password = request.query().get("password"); + + try { + this->login_user(username, password, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::logout_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + + try { + this->logout_user(response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} +void UserApi::update_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + // Getting the path params + auto username = request.param(":username").as(); + + // Getting the body param + User body; + + try { + nlohmann::json request_body = nlohmann::json::parse(request.body()); + body.fromJson(request_body); + this->update_user(username, body, response); + } catch (std::runtime_error & e) { + //send a 400 error + response.send(Net::Http::Code::Bad_Request, e.what()); + return; + } + +} + +void UserApi::user_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response) { + response.send(Net::Http::Code::Not_Found, "The requested method does not exist"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/api/UserApi.h b/samples/server/petstore/pistache-server/api/UserApi.h new file mode 100644 index 00000000000..0d5e18305e2 --- /dev/null +++ b/samples/server/petstore/pistache-server/api/UserApi.h @@ -0,0 +1,146 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * UserApi.h + * + * + */ + +#ifndef UserApi_H_ +#define UserApi_H_ + + +#include +#include +#include +#include + +#include "User.h" +#include +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class UserApi { +public: + UserApi(Net::Address addr); + virtual ~UserApi() {}; + void init(size_t thr); + void start(); + void shutdown(); + + const std::string base = "/v2"; + +private: + void setupRoutes(); + + void create_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void create_users_with_array_input_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void create_users_with_list_input_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void delete_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void get_user_by_name_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void login_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void logout_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void update_user_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + void user_api_default_handler(const Net::Rest::Request &request, Net::Http::ResponseWriter response); + + std::shared_ptr httpEndpoint; + Net::Rest::Router router; + + + /// + /// Create user + /// + /// + /// This can only be done by the logged in user. + /// + /// Created user object + virtual void create_user(const User &body, Net::Http::ResponseWriter &response) = 0; + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// List of user object + virtual void create_users_with_array_input(const User &body, Net::Http::ResponseWriter &response) = 0; + + /// + /// Creates list of users with given input array + /// + /// + /// + /// + /// List of user object + virtual void create_users_with_list_input(const User &body, Net::Http::ResponseWriter &response) = 0; + + /// + /// Delete user + /// + /// + /// This can only be done by the logged in user. + /// + /// The name that needs to be deleted + virtual void delete_user(const std::string &username, Net::Http::ResponseWriter &response) = 0; + + /// + /// Get user by user name + /// + /// + /// + /// + /// The name that needs to be fetched. Use user1 for testing. + virtual void get_user_by_name(const std::string &username, Net::Http::ResponseWriter &response) = 0; + + /// + /// Logs user into the system + /// + /// + /// + /// + /// The user name for login + /// The password for login in clear text + virtual void login_user(const Optional &username, const Optional &password, Net::Http::ResponseWriter &response) = 0; + + /// + /// Logs out current logged in user session + /// + /// + /// + /// + virtual void logout_user(Net::Http::ResponseWriter &response) = 0; + + /// + /// Updated user + /// + /// + /// This can only be done by the logged in user. + /// + /// name that need to be deleted + /// Updated user object + virtual void update_user(const std::string &username, const User &body, Net::Http::ResponseWriter &response) = 0; + +}; + +} +} +} +} + +#endif /* UserApi_H_ */ + diff --git a/samples/server/petstore/pistache-server/impl/PetApiImpl.cpp b/samples/server/petstore/pistache-server/impl/PetApiImpl.cpp new file mode 100644 index 00000000000..6fcfb1d922f --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/PetApiImpl.cpp @@ -0,0 +1,55 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "PetApiImpl.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +PetApiImpl::PetApiImpl(Net::Address addr) + : PetApi(addr) + { } + +void PetApiImpl::add_pet(const Pet &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::delete_pet(const int64_t &petId, const Optional &apiKey, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::find_pets_by_status(const Optional &status, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::find_pets_by_tags(const Optional &tags, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::get_pet_by_id(const int64_t &petId, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::update_pet(const Pet &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::update_pet_with_form(const Net::Rest::Request &request, Net::Http::ResponseWriter &response){ + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void PetApiImpl::upload_file(const Net::Rest::Request &request, Net::Http::ResponseWriter &response){ + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/impl/PetApiImpl.h b/samples/server/petstore/pistache-server/impl/PetApiImpl.h new file mode 100644 index 00000000000..bcb79527f62 --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/PetApiImpl.h @@ -0,0 +1,64 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +/* +* PetApiImpl.h +* +* +*/ + +#ifndef PET_API_IMPL_H_ +#define PET_API_IMPL_H_ + + +#include +#include +#include +#include + +#include + +#include "ApiResponse.h" +#include "Pet.h" +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class PetApiImpl : public io::swagger::server::api::PetApi { +public: + PetApiImpl(Net::Address addr); + ~PetApiImpl() { }; + + void add_pet(const Pet &body, Net::Http::ResponseWriter &response); + void delete_pet(const int64_t &petId, const Optional &apiKey, Net::Http::ResponseWriter &response); + void find_pets_by_status(const Optional &status, Net::Http::ResponseWriter &response); + void find_pets_by_tags(const Optional &tags, Net::Http::ResponseWriter &response); + void get_pet_by_id(const int64_t &petId, Net::Http::ResponseWriter &response); + void update_pet(const Pet &body, Net::Http::ResponseWriter &response); + void update_pet_with_form(const Net::Rest::Request &request, Net::Http::ResponseWriter &response); + void upload_file(const Net::Rest::Request &request, Net::Http::ResponseWriter &response); + +}; + +} +} +} +} + + + +#endif \ No newline at end of file diff --git a/samples/server/petstore/pistache-server/impl/StoreApiImpl.cpp b/samples/server/petstore/pistache-server/impl/StoreApiImpl.cpp new file mode 100644 index 00000000000..a95d7f1560c --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/StoreApiImpl.cpp @@ -0,0 +1,43 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "StoreApiImpl.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +StoreApiImpl::StoreApiImpl(Net::Address addr) + : StoreApi(addr) + { } + +void StoreApiImpl::delete_order(const std::string &orderId, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void StoreApiImpl::get_inventory(Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void StoreApiImpl::get_order_by_id(const int64_t &orderId, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void StoreApiImpl::place_order(const Order &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/impl/StoreApiImpl.h b/samples/server/petstore/pistache-server/impl/StoreApiImpl.h new file mode 100644 index 00000000000..45e16427f72 --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/StoreApiImpl.h @@ -0,0 +1,60 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +/* +* StoreApiImpl.h +* +* +*/ + +#ifndef STORE_API_IMPL_H_ +#define STORE_API_IMPL_H_ + + +#include +#include +#include +#include + +#include + +#include "Order.h" +#include +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class StoreApiImpl : public io::swagger::server::api::StoreApi { +public: + StoreApiImpl(Net::Address addr); + ~StoreApiImpl() { }; + + void delete_order(const std::string &orderId, Net::Http::ResponseWriter &response); + void get_inventory(Net::Http::ResponseWriter &response); + void get_order_by_id(const int64_t &orderId, Net::Http::ResponseWriter &response); + void place_order(const Order &body, Net::Http::ResponseWriter &response); + +}; + +} +} +} +} + + + +#endif \ No newline at end of file diff --git a/samples/server/petstore/pistache-server/impl/UserApiImpl.cpp b/samples/server/petstore/pistache-server/impl/UserApiImpl.cpp new file mode 100644 index 00000000000..439a070ba81 --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/UserApiImpl.cpp @@ -0,0 +1,55 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +#include "UserApiImpl.h" + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +UserApiImpl::UserApiImpl(Net::Address addr) + : UserApi(addr) + { } + +void UserApiImpl::create_user(const User &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::create_users_with_array_input(const User &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::create_users_with_list_input(const User &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::delete_user(const std::string &username, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::get_user_by_name(const std::string &username, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::login_user(const Optional &username, const Optional &password, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::logout_user(Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} +void UserApiImpl::update_user(const std::string &username, const User &body, Net::Http::ResponseWriter &response) { + response.send(Net::Http::Code::Ok, "Do some magic\n"); +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/impl/UserApiImpl.h b/samples/server/petstore/pistache-server/impl/UserApiImpl.h new file mode 100644 index 00000000000..7f436013dae --- /dev/null +++ b/samples/server/petstore/pistache-server/impl/UserApiImpl.h @@ -0,0 +1,64 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + +/* +* UserApiImpl.h +* +* +*/ + +#ifndef USER_API_IMPL_H_ +#define USER_API_IMPL_H_ + + +#include +#include +#include +#include + +#include + +#include "User.h" +#include +#include + +namespace io { +namespace swagger { +namespace server { +namespace api { + +using namespace io::swagger::server::model; + +class UserApiImpl : public io::swagger::server::api::UserApi { +public: + UserApiImpl(Net::Address addr); + ~UserApiImpl() { }; + + void create_user(const User &body, Net::Http::ResponseWriter &response); + void create_users_with_array_input(const User &body, Net::Http::ResponseWriter &response); + void create_users_with_list_input(const User &body, Net::Http::ResponseWriter &response); + void delete_user(const std::string &username, Net::Http::ResponseWriter &response); + void get_user_by_name(const std::string &username, Net::Http::ResponseWriter &response); + void login_user(const Optional &username, const Optional &password, Net::Http::ResponseWriter &response); + void logout_user(Net::Http::ResponseWriter &response); + void update_user(const std::string &username, const User &body, Net::Http::ResponseWriter &response); + +}; + +} +} +} +} + + + +#endif \ No newline at end of file diff --git a/samples/server/petstore/pistache-server/model/ApiResponse.cpp b/samples/server/petstore/pistache-server/model/ApiResponse.cpp new file mode 100644 index 00000000000..534994a69ea --- /dev/null +++ b/samples/server/petstore/pistache-server/model/ApiResponse.cpp @@ -0,0 +1,138 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "ApiResponse.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +ApiResponse::ApiResponse() +{ + m_Code = 0; + m_CodeIsSet = false; + m_Type = ""; + m_TypeIsSet = false; + m_Message = ""; + m_MessageIsSet = false; + +} + +ApiResponse::~ApiResponse() +{ +} + +void ApiResponse::validate() +{ + // TODO: implement validation +} + +nlohmann::json ApiResponse::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_CodeIsSet) + { + val["code"] = m_Code; + } + if(m_TypeIsSet) + { + val["type"] = ModelBase::toJson(m_Type); + } + if(m_MessageIsSet) + { + val["message"] = ModelBase::toJson(m_Message); + } + + + return val; +} + +void ApiResponse::fromJson(nlohmann::json& val) +{ + if(val.find("code") != val.end()) + { + setCode(val.at("code")); + } + if(val.find("type") != val.end()) + { + setType(val.at("type")); + + } + if(val.find("message") != val.end()) + { + setMessage(val.at("message")); + + } + +} + + +int32_t ApiResponse::getCode() const +{ + return m_Code; +} +void ApiResponse::setCode(int32_t value) +{ + m_Code = value; + m_CodeIsSet = true; +} +bool ApiResponse::codeIsSet() const +{ + return m_CodeIsSet; +} +void ApiResponse::unsetCode() +{ + m_CodeIsSet = false; +} +std::string ApiResponse::getType() const +{ + return m_Type; +} +void ApiResponse::setType(std::string value) +{ + m_Type = value; + m_TypeIsSet = true; +} +bool ApiResponse::typeIsSet() const +{ + return m_TypeIsSet; +} +void ApiResponse::unsetType() +{ + m_TypeIsSet = false; +} +std::string ApiResponse::getMessage() const +{ + return m_Message; +} +void ApiResponse::setMessage(std::string value) +{ + m_Message = value; + m_MessageIsSet = true; +} +bool ApiResponse::messageIsSet() const +{ + return m_MessageIsSet; +} +void ApiResponse::unsetMessage() +{ + m_MessageIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/ApiResponse.h b/samples/server/petstore/pistache-server/model/ApiResponse.h new file mode 100644 index 00000000000..f54b28ea0df --- /dev/null +++ b/samples/server/petstore/pistache-server/model/ApiResponse.h @@ -0,0 +1,88 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * ApiResponse.h + * + * Describes the result of uploading an image resource + */ + +#ifndef ApiResponse_H_ +#define ApiResponse_H_ + + +#include "ModelBase.h" + +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// Describes the result of uploading an image resource +/// +class ApiResponse + : public ModelBase +{ +public: + ApiResponse(); + virtual ~ApiResponse(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// ApiResponse members + + /// + /// + /// + int32_t getCode() const; + void setCode(int32_t value); + bool codeIsSet() const; + void unsetCode(); + /// + /// + /// + std::string getType() const; + void setType(std::string value); + bool typeIsSet() const; + void unsetType(); + /// + /// + /// + std::string getMessage() const; + void setMessage(std::string value); + bool messageIsSet() const; + void unsetMessage(); + +protected: + int32_t m_Code; + bool m_CodeIsSet; + std::string m_Type; + bool m_TypeIsSet; + std::string m_Message; + bool m_MessageIsSet; +}; + +} +} +} +} + +#endif /* ApiResponse_H_ */ diff --git a/samples/server/petstore/pistache-server/model/Category.cpp b/samples/server/petstore/pistache-server/model/Category.cpp new file mode 100644 index 00000000000..544f71241da --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Category.cpp @@ -0,0 +1,110 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "Category.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +Category::Category() +{ + m_Id = 0; + m_IdIsSet = false; + m_Name = ""; + m_NameIsSet = false; + +} + +Category::~Category() +{ +} + +void Category::validate() +{ + // TODO: implement validation +} + +nlohmann::json Category::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_IdIsSet) + { + val["id"] = m_Id; + } + if(m_NameIsSet) + { + val["name"] = ModelBase::toJson(m_Name); + } + + + return val; +} + +void Category::fromJson(nlohmann::json& val) +{ + if(val.find("id") != val.end()) + { + setId(val.at("id")); + } + if(val.find("name") != val.end()) + { + setName(val.at("name")); + + } + +} + + +int64_t Category::getId() const +{ + return m_Id; +} +void Category::setId(int64_t value) +{ + m_Id = value; + m_IdIsSet = true; +} +bool Category::idIsSet() const +{ + return m_IdIsSet; +} +void Category::unsetId() +{ + m_IdIsSet = false; +} +std::string Category::getName() const +{ + return m_Name; +} +void Category::setName(std::string value) +{ + m_Name = value; + m_NameIsSet = true; +} +bool Category::nameIsSet() const +{ + return m_NameIsSet; +} +void Category::unsetName() +{ + m_NameIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/Category.h b/samples/server/petstore/pistache-server/model/Category.h new file mode 100644 index 00000000000..1571744c035 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Category.h @@ -0,0 +1,79 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * Category.h + * + * A category for a pet + */ + +#ifndef Category_H_ +#define Category_H_ + + +#include "ModelBase.h" + +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// A category for a pet +/// +class Category + : public ModelBase +{ +public: + Category(); + virtual ~Category(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// Category members + + /// + /// + /// + int64_t getId() const; + void setId(int64_t value); + bool idIsSet() const; + void unsetId(); + /// + /// + /// + std::string getName() const; + void setName(std::string value); + bool nameIsSet() const; + void unsetName(); + +protected: + int64_t m_Id; + bool m_IdIsSet; + std::string m_Name; + bool m_NameIsSet; +}; + +} +} +} +} + +#endif /* Category_H_ */ diff --git a/samples/server/petstore/pistache-server/model/ModelBase.cpp b/samples/server/petstore/pistache-server/model/ModelBase.cpp new file mode 100644 index 00000000000..8f5fdaefe53 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/ModelBase.cpp @@ -0,0 +1,66 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +#include "ModelBase.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +ModelBase::ModelBase() +{ +} +ModelBase::~ModelBase() +{ +} + +std::string ModelBase::toJson( const std::string& value ) +{ + return value; +} + +std::string ModelBase::toJson( const std::time_t& value ) +{ + char buf[sizeof "2011-10-08T07:07:09Z"]; + strftime(buf, sizeof buf, "%FT%TZ", gmtime(&value)); + return buf; +} + +int32_t ModelBase::toJson( int32_t value ) +{ + return value; +} + +int64_t ModelBase::toJson( int64_t value ) +{ + return value; +} + +double ModelBase::toJson( double value ) +{ + return value; +} + +bool ModelBase::toJson( bool value ) +{ + return value; +} + +nlohmann::json ModelBase::toJson( std::shared_ptr content ) +{ + return content.get() ? content->toJson() : nlohmann::json(); +} + +} +} +} +} diff --git a/samples/server/petstore/pistache-server/model/ModelBase.h b/samples/server/petstore/pistache-server/model/ModelBase.h new file mode 100644 index 00000000000..fc59a80958d --- /dev/null +++ b/samples/server/petstore/pistache-server/model/ModelBase.h @@ -0,0 +1,57 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * ModelBase.h + * + * This is the base class for all model classes + */ + +#ifndef ModelBase_H_ +#define ModelBase_H_ + + +#include "json.hpp" +#include +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +class ModelBase +{ +public: + ModelBase(); + virtual ~ModelBase(); + + virtual void validate() = 0; + + virtual nlohmann::json toJson() const = 0; + virtual void fromJson(nlohmann::json& json) = 0; + + static std::string toJson( const std::string& value ); + static std::string toJson( const std::time_t& value ); + static int32_t toJson( int32_t value ); + static int64_t toJson( int64_t value ); + static double toJson( double value ); + static bool toJson( bool value ); + static nlohmann::json toJson( std::shared_ptr content ); + +}; + +} +} +} +} + +#endif /* ModelBase_H_ */ diff --git a/samples/server/petstore/pistache-server/model/Order.cpp b/samples/server/petstore/pistache-server/model/Order.cpp new file mode 100644 index 00000000000..7e249eb341b --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Order.cpp @@ -0,0 +1,219 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "Order.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +Order::Order() +{ + m_Id = 0; + m_IdIsSet = false; + m_PetId = 0; + m_PetIdIsSet = false; + m_Quantity = 0; + m_QuantityIsSet = false; + m_ShipDate = ""; + m_ShipDateIsSet = false; + m_Status = ""; + m_StatusIsSet = false; + m_Complete = false; + m_CompleteIsSet = false; + +} + +Order::~Order() +{ +} + +void Order::validate() +{ + // TODO: implement validation +} + +nlohmann::json Order::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_IdIsSet) + { + val["id"] = m_Id; + } + if(m_PetIdIsSet) + { + val["petId"] = m_PetId; + } + if(m_QuantityIsSet) + { + val["quantity"] = m_Quantity; + } + if(m_ShipDateIsSet) + { + val["shipDate"] = ModelBase::toJson(m_ShipDate); + } + if(m_StatusIsSet) + { + val["status"] = ModelBase::toJson(m_Status); + } + if(m_CompleteIsSet) + { + val["complete"] = m_Complete; + } + + + return val; +} + +void Order::fromJson(nlohmann::json& val) +{ + if(val.find("id") != val.end()) + { + setId(val.at("id")); + } + if(val.find("petId") != val.end()) + { + setPetId(val.at("petId")); + } + if(val.find("quantity") != val.end()) + { + setQuantity(val.at("quantity")); + } + if(val.find("shipDate") != val.end()) + { + setShipDate(val.at("shipDate")); + + } + if(val.find("status") != val.end()) + { + setStatus(val.at("status")); + + } + if(val.find("complete") != val.end()) + { + setComplete(val.at("complete")); + } + +} + + +int64_t Order::getId() const +{ + return m_Id; +} +void Order::setId(int64_t value) +{ + m_Id = value; + m_IdIsSet = true; +} +bool Order::idIsSet() const +{ + return m_IdIsSet; +} +void Order::unsetId() +{ + m_IdIsSet = false; +} +int64_t Order::getPetId() const +{ + return m_PetId; +} +void Order::setPetId(int64_t value) +{ + m_PetId = value; + m_PetIdIsSet = true; +} +bool Order::petIdIsSet() const +{ + return m_PetIdIsSet; +} +void Order::unsetPetId() +{ + m_PetIdIsSet = false; +} +int32_t Order::getQuantity() const +{ + return m_Quantity; +} +void Order::setQuantity(int32_t value) +{ + m_Quantity = value; + m_QuantityIsSet = true; +} +bool Order::quantityIsSet() const +{ + return m_QuantityIsSet; +} +void Order::unsetQuantity() +{ + m_QuantityIsSet = false; +} +std::string Order::getShipDate() const +{ + return m_ShipDate; +} +void Order::setShipDate(std::string value) +{ + m_ShipDate = value; + m_ShipDateIsSet = true; +} +bool Order::shipDateIsSet() const +{ + return m_ShipDateIsSet; +} +void Order::unsetShipDate() +{ + m_ShipDateIsSet = false; +} +std::string Order::getStatus() const +{ + return m_Status; +} +void Order::setStatus(std::string value) +{ + m_Status = value; + m_StatusIsSet = true; +} +bool Order::statusIsSet() const +{ + return m_StatusIsSet; +} +void Order::unsetStatus() +{ + m_StatusIsSet = false; +} +bool Order::getComplete() const +{ + return m_Complete; +} +void Order::setComplete(bool value) +{ + m_Complete = value; + m_CompleteIsSet = true; +} +bool Order::completeIsSet() const +{ + return m_CompleteIsSet; +} +void Order::unsetComplete() +{ + m_CompleteIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/Order.h b/samples/server/petstore/pistache-server/model/Order.h new file mode 100644 index 00000000000..3872543e459 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Order.h @@ -0,0 +1,115 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * Order.h + * + * An order for a pets from the pet store + */ + +#ifndef Order_H_ +#define Order_H_ + + +#include "ModelBase.h" + +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// An order for a pets from the pet store +/// +class Order + : public ModelBase +{ +public: + Order(); + virtual ~Order(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// Order members + + /// + /// + /// + int64_t getId() const; + void setId(int64_t value); + bool idIsSet() const; + void unsetId(); + /// + /// + /// + int64_t getPetId() const; + void setPetId(int64_t value); + bool petIdIsSet() const; + void unsetPetId(); + /// + /// + /// + int32_t getQuantity() const; + void setQuantity(int32_t value); + bool quantityIsSet() const; + void unsetQuantity(); + /// + /// + /// + std::string getShipDate() const; + void setShipDate(std::string value); + bool shipDateIsSet() const; + void unsetShipDate(); + /// + /// Order Status + /// + std::string getStatus() const; + void setStatus(std::string value); + bool statusIsSet() const; + void unsetStatus(); + /// + /// + /// + bool getComplete() const; + void setComplete(bool value); + bool completeIsSet() const; + void unsetComplete(); + +protected: + int64_t m_Id; + bool m_IdIsSet; + int64_t m_PetId; + bool m_PetIdIsSet; + int32_t m_Quantity; + bool m_QuantityIsSet; + std::string m_ShipDate; + bool m_ShipDateIsSet; + std::string m_Status; + bool m_StatusIsSet; + bool m_Complete; + bool m_CompleteIsSet; +}; + +} +} +} +} + +#endif /* Order_H_ */ diff --git a/samples/server/petstore/pistache-server/model/Pet.cpp b/samples/server/petstore/pistache-server/model/Pet.cpp new file mode 100644 index 00000000000..1f5cfe2d7e8 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Pet.cpp @@ -0,0 +1,222 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "Pet.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +Pet::Pet() +{ + m_Id = 0; + m_IdIsSet = false; + m_CategoryIsSet = false; + m_Name = ""; + m_TagsIsSet = false; + m_Status = ""; + m_StatusIsSet = false; + +} + +Pet::~Pet() +{ +} + +void Pet::validate() +{ + // TODO: implement validation +} + +nlohmann::json Pet::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_IdIsSet) + { + val["id"] = m_Id; + } + if(m_CategoryIsSet) + { + val["category"] = ModelBase::toJson(m_Category); + } + val["name"] = ModelBase::toJson(m_Name); + { + nlohmann::json jsonArray; + for( auto& item : m_PhotoUrls ) + { + jsonArray.push_back(ModelBase::toJson(item)); + } + val["photoUrls"] = jsonArray; + } + { + nlohmann::json jsonArray; + for( auto& item : m_Tags ) + { + jsonArray.push_back(ModelBase::toJson(item)); + } + + if(jsonArray.size() > 0) + { + val["tags"] = jsonArray; + } + } + if(m_StatusIsSet) + { + val["status"] = ModelBase::toJson(m_Status); + } + + + return val; +} + +void Pet::fromJson(nlohmann::json& val) +{ + if(val.find("id") != val.end()) + { + setId(val.at("id")); + } + if(val.find("category") != val.end()) + { + if(!val["category"].is_null()) + { + std::shared_ptr newItem(new Category()); + newItem->fromJson(val["category"]); + setCategory( newItem ); + } + + } + setName(val.at("name")); + { + m_PhotoUrls.clear(); + nlohmann::json jsonArray; + for( auto& item : val["photoUrls"] ) + { + m_PhotoUrls.push_back(item); + + } + } + { + m_Tags.clear(); + nlohmann::json jsonArray; + if(val.find("tags") != val.end()) + { + for( auto& item : val["tags"] ) + { + + if(item.is_null()) + { + m_Tags.push_back( std::shared_ptr(nullptr) ); + } + else + { + std::shared_ptr newItem(new Tag()); + newItem->fromJson(item); + m_Tags.push_back( newItem ); + } + + } + } + } + if(val.find("status") != val.end()) + { + setStatus(val.at("status")); + + } + +} + + +int64_t Pet::getId() const +{ + return m_Id; +} +void Pet::setId(int64_t value) +{ + m_Id = value; + m_IdIsSet = true; +} +bool Pet::idIsSet() const +{ + return m_IdIsSet; +} +void Pet::unsetId() +{ + m_IdIsSet = false; +} +std::shared_ptr Pet::getCategory() const +{ + return m_Category; +} +void Pet::setCategory(std::shared_ptr value) +{ + m_Category = value; + m_CategoryIsSet = true; +} +bool Pet::categoryIsSet() const +{ + return m_CategoryIsSet; +} +void Pet::unsetCategory() +{ + m_CategoryIsSet = false; +} +std::string Pet::getName() const +{ + return m_Name; +} +void Pet::setName(std::string value) +{ + m_Name = value; + +} +std::vector& Pet::getPhotoUrls() +{ + return m_PhotoUrls; +} +std::vector>& Pet::getTags() +{ + return m_Tags; +} +bool Pet::tagsIsSet() const +{ + return m_TagsIsSet; +} +void Pet::unsetTags() +{ + m_TagsIsSet = false; +} +std::string Pet::getStatus() const +{ + return m_Status; +} +void Pet::setStatus(std::string value) +{ + m_Status = value; + m_StatusIsSet = true; +} +bool Pet::statusIsSet() const +{ + return m_StatusIsSet; +} +void Pet::unsetStatus() +{ + m_StatusIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/Pet.h b/samples/server/petstore/pistache-server/model/Pet.h new file mode 100644 index 00000000000..ac8e0d92c61 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Pet.h @@ -0,0 +1,112 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * Pet.h + * + * A pet for sale in the pet store + */ + +#ifndef Pet_H_ +#define Pet_H_ + + +#include "ModelBase.h" + +#include "Tag.h" +#include +#include "Category.h" +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// A pet for sale in the pet store +/// +class Pet + : public ModelBase +{ +public: + Pet(); + virtual ~Pet(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// Pet members + + /// + /// + /// + int64_t getId() const; + void setId(int64_t value); + bool idIsSet() const; + void unsetId(); + /// + /// + /// + std::shared_ptr getCategory() const; + void setCategory(std::shared_ptr value); + bool categoryIsSet() const; + void unsetCategory(); + /// + /// + /// + std::string getName() const; + void setName(std::string value); + /// + /// + /// + std::vector& getPhotoUrls(); + /// + /// + /// + std::vector>& getTags(); + bool tagsIsSet() const; + void unsetTags(); + /// + /// pet status in the store + /// + std::string getStatus() const; + void setStatus(std::string value); + bool statusIsSet() const; + void unsetStatus(); + +protected: + int64_t m_Id; + bool m_IdIsSet; + std::shared_ptr m_Category; + bool m_CategoryIsSet; + std::string m_Name; + + std::vector m_PhotoUrls; + + std::vector> m_Tags; + bool m_TagsIsSet; + std::string m_Status; + bool m_StatusIsSet; +}; + +} +} +} +} + +#endif /* Pet_H_ */ diff --git a/samples/server/petstore/pistache-server/model/Tag.cpp b/samples/server/petstore/pistache-server/model/Tag.cpp new file mode 100644 index 00000000000..0854613f58b --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Tag.cpp @@ -0,0 +1,110 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "Tag.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +Tag::Tag() +{ + m_Id = 0; + m_IdIsSet = false; + m_Name = ""; + m_NameIsSet = false; + +} + +Tag::~Tag() +{ +} + +void Tag::validate() +{ + // TODO: implement validation +} + +nlohmann::json Tag::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_IdIsSet) + { + val["id"] = m_Id; + } + if(m_NameIsSet) + { + val["name"] = ModelBase::toJson(m_Name); + } + + + return val; +} + +void Tag::fromJson(nlohmann::json& val) +{ + if(val.find("id") != val.end()) + { + setId(val.at("id")); + } + if(val.find("name") != val.end()) + { + setName(val.at("name")); + + } + +} + + +int64_t Tag::getId() const +{ + return m_Id; +} +void Tag::setId(int64_t value) +{ + m_Id = value; + m_IdIsSet = true; +} +bool Tag::idIsSet() const +{ + return m_IdIsSet; +} +void Tag::unsetId() +{ + m_IdIsSet = false; +} +std::string Tag::getName() const +{ + return m_Name; +} +void Tag::setName(std::string value) +{ + m_Name = value; + m_NameIsSet = true; +} +bool Tag::nameIsSet() const +{ + return m_NameIsSet; +} +void Tag::unsetName() +{ + m_NameIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/Tag.h b/samples/server/petstore/pistache-server/model/Tag.h new file mode 100644 index 00000000000..af432f44cc4 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/Tag.h @@ -0,0 +1,79 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * Tag.h + * + * A tag for a pet + */ + +#ifndef Tag_H_ +#define Tag_H_ + + +#include "ModelBase.h" + +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// A tag for a pet +/// +class Tag + : public ModelBase +{ +public: + Tag(); + virtual ~Tag(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// Tag members + + /// + /// + /// + int64_t getId() const; + void setId(int64_t value); + bool idIsSet() const; + void unsetId(); + /// + /// + /// + std::string getName() const; + void setName(std::string value); + bool nameIsSet() const; + void unsetName(); + +protected: + int64_t m_Id; + bool m_IdIsSet; + std::string m_Name; + bool m_NameIsSet; +}; + +} +} +} +} + +#endif /* Tag_H_ */ diff --git a/samples/server/petstore/pistache-server/model/User.cpp b/samples/server/petstore/pistache-server/model/User.cpp new file mode 100644 index 00000000000..c916d14842e --- /dev/null +++ b/samples/server/petstore/pistache-server/model/User.cpp @@ -0,0 +1,277 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ + + +#include "User.h" + +namespace io { +namespace swagger { +namespace server { +namespace model { + +User::User() +{ + m_Id = 0; + m_IdIsSet = false; + m_Username = ""; + m_UsernameIsSet = false; + m_FirstName = ""; + m_FirstNameIsSet = false; + m_LastName = ""; + m_LastNameIsSet = false; + m_Email = ""; + m_EmailIsSet = false; + m_Password = ""; + m_PasswordIsSet = false; + m_Phone = ""; + m_PhoneIsSet = false; + m_UserStatus = 0; + m_UserStatusIsSet = false; + +} + +User::~User() +{ +} + +void User::validate() +{ + // TODO: implement validation +} + +nlohmann::json User::toJson() const +{ + nlohmann::json val = nlohmann::json::object(); + + if(m_IdIsSet) + { + val["id"] = m_Id; + } + if(m_UsernameIsSet) + { + val["username"] = ModelBase::toJson(m_Username); + } + if(m_FirstNameIsSet) + { + val["firstName"] = ModelBase::toJson(m_FirstName); + } + if(m_LastNameIsSet) + { + val["lastName"] = ModelBase::toJson(m_LastName); + } + if(m_EmailIsSet) + { + val["email"] = ModelBase::toJson(m_Email); + } + if(m_PasswordIsSet) + { + val["password"] = ModelBase::toJson(m_Password); + } + if(m_PhoneIsSet) + { + val["phone"] = ModelBase::toJson(m_Phone); + } + if(m_UserStatusIsSet) + { + val["userStatus"] = m_UserStatus; + } + + + return val; +} + +void User::fromJson(nlohmann::json& val) +{ + if(val.find("id") != val.end()) + { + setId(val.at("id")); + } + if(val.find("username") != val.end()) + { + setUsername(val.at("username")); + + } + if(val.find("firstName") != val.end()) + { + setFirstName(val.at("firstName")); + + } + if(val.find("lastName") != val.end()) + { + setLastName(val.at("lastName")); + + } + if(val.find("email") != val.end()) + { + setEmail(val.at("email")); + + } + if(val.find("password") != val.end()) + { + setPassword(val.at("password")); + + } + if(val.find("phone") != val.end()) + { + setPhone(val.at("phone")); + + } + if(val.find("userStatus") != val.end()) + { + setUserStatus(val.at("userStatus")); + } + +} + + +int64_t User::getId() const +{ + return m_Id; +} +void User::setId(int64_t value) +{ + m_Id = value; + m_IdIsSet = true; +} +bool User::idIsSet() const +{ + return m_IdIsSet; +} +void User::unsetId() +{ + m_IdIsSet = false; +} +std::string User::getUsername() const +{ + return m_Username; +} +void User::setUsername(std::string value) +{ + m_Username = value; + m_UsernameIsSet = true; +} +bool User::usernameIsSet() const +{ + return m_UsernameIsSet; +} +void User::unsetUsername() +{ + m_UsernameIsSet = false; +} +std::string User::getFirstName() const +{ + return m_FirstName; +} +void User::setFirstName(std::string value) +{ + m_FirstName = value; + m_FirstNameIsSet = true; +} +bool User::firstNameIsSet() const +{ + return m_FirstNameIsSet; +} +void User::unsetFirstName() +{ + m_FirstNameIsSet = false; +} +std::string User::getLastName() const +{ + return m_LastName; +} +void User::setLastName(std::string value) +{ + m_LastName = value; + m_LastNameIsSet = true; +} +bool User::lastNameIsSet() const +{ + return m_LastNameIsSet; +} +void User::unsetLastName() +{ + m_LastNameIsSet = false; +} +std::string User::getEmail() const +{ + return m_Email; +} +void User::setEmail(std::string value) +{ + m_Email = value; + m_EmailIsSet = true; +} +bool User::emailIsSet() const +{ + return m_EmailIsSet; +} +void User::unsetEmail() +{ + m_EmailIsSet = false; +} +std::string User::getPassword() const +{ + return m_Password; +} +void User::setPassword(std::string value) +{ + m_Password = value; + m_PasswordIsSet = true; +} +bool User::passwordIsSet() const +{ + return m_PasswordIsSet; +} +void User::unsetPassword() +{ + m_PasswordIsSet = false; +} +std::string User::getPhone() const +{ + return m_Phone; +} +void User::setPhone(std::string value) +{ + m_Phone = value; + m_PhoneIsSet = true; +} +bool User::phoneIsSet() const +{ + return m_PhoneIsSet; +} +void User::unsetPhone() +{ + m_PhoneIsSet = false; +} +int32_t User::getUserStatus() const +{ + return m_UserStatus; +} +void User::setUserStatus(int32_t value) +{ + m_UserStatus = value; + m_UserStatusIsSet = true; +} +bool User::userStatusIsSet() const +{ + return m_UserStatusIsSet; +} +void User::unsetUserStatus() +{ + m_UserStatusIsSet = false; +} + +} +} +} +} + diff --git a/samples/server/petstore/pistache-server/model/User.h b/samples/server/petstore/pistache-server/model/User.h new file mode 100644 index 00000000000..372247c7472 --- /dev/null +++ b/samples/server/petstore/pistache-server/model/User.h @@ -0,0 +1,133 @@ +/** +* Swagger Petstore +* This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. +* +* OpenAPI spec version: 1.0.0 +* Contact: apiteam@swagger.io +* +* NOTE: This class is auto generated by the swagger code generator program. +* https://github.com/swagger-api/swagger-codegen.git +* Do not edit the class manually. +*/ +/* + * User.h + * + * A User who is purchasing from the pet store + */ + +#ifndef User_H_ +#define User_H_ + + +#include "ModelBase.h" + +#include + +namespace io { +namespace swagger { +namespace server { +namespace model { + +/// +/// A User who is purchasing from the pet store +/// +class User + : public ModelBase +{ +public: + User(); + virtual ~User(); + + ///////////////////////////////////////////// + /// ModelBase overrides + + void validate() override; + + nlohmann::json toJson() const override; + void fromJson(nlohmann::json& json) override; + + ///////////////////////////////////////////// + /// User members + + /// + /// + /// + int64_t getId() const; + void setId(int64_t value); + bool idIsSet() const; + void unsetId(); + /// + /// + /// + std::string getUsername() const; + void setUsername(std::string value); + bool usernameIsSet() const; + void unsetUsername(); + /// + /// + /// + std::string getFirstName() const; + void setFirstName(std::string value); + bool firstNameIsSet() const; + void unsetFirstName(); + /// + /// + /// + std::string getLastName() const; + void setLastName(std::string value); + bool lastNameIsSet() const; + void unsetLastName(); + /// + /// + /// + std::string getEmail() const; + void setEmail(std::string value); + bool emailIsSet() const; + void unsetEmail(); + /// + /// + /// + std::string getPassword() const; + void setPassword(std::string value); + bool passwordIsSet() const; + void unsetPassword(); + /// + /// + /// + std::string getPhone() const; + void setPhone(std::string value); + bool phoneIsSet() const; + void unsetPhone(); + /// + /// User Status + /// + int32_t getUserStatus() const; + void setUserStatus(int32_t value); + bool userStatusIsSet() const; + void unsetUserStatus(); + +protected: + int64_t m_Id; + bool m_IdIsSet; + std::string m_Username; + bool m_UsernameIsSet; + std::string m_FirstName; + bool m_FirstNameIsSet; + std::string m_LastName; + bool m_LastNameIsSet; + std::string m_Email; + bool m_EmailIsSet; + std::string m_Password; + bool m_PasswordIsSet; + std::string m_Phone; + bool m_PhoneIsSet; + int32_t m_UserStatus; + bool m_UserStatusIsSet; +}; + +} +} +} +} + +#endif /* User_H_ */ From 66c64495a9dd0f14021c0d01b3a25466f8acf45c Mon Sep 17 00:00:00 2001 From: wing328 Date: Wed, 14 Jun 2017 22:41:24 +0800 Subject: [PATCH 09/17] add sebymiano as Pistache template creator --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c45194e0fff..2937f082953 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ This is the swagger codegen project, which allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). Currently, the following languages/frameworks are supported: - **API clients**: **ActionScript**, **Apex**, **Bash**, **C#** (.net 2.0, 4.0 or later), **C++** (cpprest, Qt5, Tizen), **Clojure**, **Dart**, **Elixir**, **Go**, **Groovy**, **Haskell**, **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign), **Kotlin**, **Node.js** (ES5, ES6, AngularJS with Google Closure Compiler annotations) **Objective-C**, **Perl**, **PHP**, **Python**, **Ruby**, **Scala**, **Swift** (2.x, 3.x), **Typescript** (Angular1.x, Angular2.x, Fetch, jQuery, Node) -- **Server stubs**: **C#** (ASP.NET Core, NancyFx), **C++** (Restbed), **Erlang**, **Go**, **Haskell**, **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework), **PHP** (Lumen, Slim, Silex, [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Scala** ([Finch](https://github.com/finagle/finch), Scalatra) +- **Server stubs**: **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed), **Erlang**, **Go**, **Haskell**, **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework), **PHP** (Lumen, Slim, Silex, [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Scala** ([Finch](https://github.com/finagle/finch), Scalatra) - **API documentation generators**: **HTML**, **Confluence Wiki** - **Others**: **JMeter** @@ -932,6 +932,7 @@ Here is a list of template creators: * Server Stubs * C# ASP.NET5: @jimschubert * C# NancyFX: @mstefaniuk + * C++ Pistache: @sebymiano * C++ Restbed: @stkrwork * Erlang Server: @galaxie * Go Server: @guohuang From e0d7c7dbd59d6ae4ffe84b6975292e1290ff25a6 Mon Sep 17 00:00:00 2001 From: JuH33 Date: Tue, 30 May 2017 11:21:17 +0200 Subject: [PATCH 10/17] =?UTF-8?q?Html2=20speed=20Up=20|=C2=A0Raw=20html=20?= =?UTF-8?q?using=20java=20parser=20instead=20of=20JS=20parser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../languages/StaticHtml2Generator.java | 36 +++++++++---- .../main/resources/htmlDocs2/index.mustache | 30 ++--------- .../htmlDocs2/js_jsonschemaview.mustache | 2 +- .../main/resources/htmlDocs2/param.mustache | 52 ++++++++++++------- .../main/resources/htmlDocs2/styles.mustache | 5 ++ 5 files changed, 71 insertions(+), 54 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/StaticHtml2Generator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/StaticHtml2Generator.java index 4ee92bd3246..daf7f96e3e9 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/StaticHtml2Generator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/StaticHtml2Generator.java @@ -1,14 +1,7 @@ package io.swagger.codegen.languages; -import io.swagger.codegen.CliOption; -import io.swagger.codegen.CodegenConfig; -import io.swagger.codegen.CodegenConstants; -import io.swagger.codegen.CodegenOperation; -import io.swagger.codegen.CodegenParameter; -import io.swagger.codegen.CodegenResponse; -import io.swagger.codegen.CodegenType; -import io.swagger.codegen.DefaultCodegen; -import io.swagger.codegen.SupportingFile; +import com.samskivert.mustache.Mustache; +import io.swagger.codegen.*; import io.swagger.models.Info; import org.yaml.snakeyaml.error.Mark; import io.swagger.codegen.utils.Markdown; @@ -129,6 +122,7 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi response.code = "default"; } } + op.formParams = postProcessParameterEnum(op.formParams); } return objs; } @@ -215,6 +209,30 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi } } + /** + * Format to HTML the enums contained in every operations + * + * @param parameterList The whole parameters contained in one operation + * @return String | Html formated enum + */ + public List postProcessParameterEnum(List parameterList) { + String enumFormatted = ""; + for(CodegenParameter parameter : parameterList) { + if (parameter.isEnum) { + for (int i = 0; i < parameter._enum.size(); i++) { + String spacer = (i == (parameter._enum.size() - 1)) ? " " : ", "; + + if (parameter._enum.get(i) != null) + enumFormatted += "`" + parameter._enum.get(i) + "`" + spacer; + } + Markdown markInstance = new Markdown(); + if (!enumFormatted.isEmpty()) + parameter.vendorExtensions.put("x-eumFormatted", markInstance.toHtml(enumFormatted)); + } + } + return parameterList; + } + private String sanitizePath(String p) { //prefer replace a ', instead of a fuLL URL encode for readability return p.replaceAll("'", "%27"); diff --git a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache index 53946c40214..c50e1ab7b17 100644 --- a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache +++ b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache @@ -59,11 +59,6 @@ }); } - - // load google web fonts - loadGoogleFontCss(); - - // Bootstrap Scrollspy $(this).scrollspy({ target: '#scrollingNav', offset: 18 }); @@ -105,21 +100,6 @@ //Convert elements with "marked" class to markdown processMarked(); - - /** - * Load google fonts. - */ - function loadGoogleFontCss() { - WebFont.load({ - active: function() { - // Update scrollspy - $(window).scrollspy('refresh') - }, - google: { - families: ['Source Code Pro', 'Source Sans Pro:n4,n6,n7'] - } - }); - } });