mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-03 22:20:56 +00:00
Merge branch 'develop_2.0' into ruby-object-type
Conflicts: modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RubyClientCodegen.java
This commit is contained in:
commit
d6d707543d
3
.gitignore
vendored
3
.gitignore
vendored
@ -41,3 +41,6 @@ atlassian-ide-plugin.xml
|
|||||||
|
|
||||||
samples/client/petstore/php/SwaggerClient-php/composer.lock
|
samples/client/petstore/php/SwaggerClient-php/composer.lock
|
||||||
samples/client/petstore/php/SwaggerClient-php/vendor/
|
samples/client/petstore/php/SwaggerClient-php/vendor/
|
||||||
|
|
||||||
|
samples/client/petstore/silex/SwaggerServer/composer.lock
|
||||||
|
samples/client/petstore/silex/SwaggerServer/venodr/
|
||||||
|
@ -32,5 +32,6 @@ cd $APP_DIR
|
|||||||
./bin/ruby-petstore.sh
|
./bin/ruby-petstore.sh
|
||||||
./bin/objc-petstore.sh
|
./bin/objc-petstore.sh
|
||||||
./bin/scala-petstore.sh
|
./bin/scala-petstore.sh
|
||||||
|
./bin/silex-petstore-server.sh
|
||||||
./bin/spring-mvc-petstore-server.sh
|
./bin/spring-mvc-petstore-server.sh
|
||||||
./bin/tizen-petstore.sh
|
./bin/tizen-petstore.sh
|
||||||
|
31
bin/silex-petstore-server.sh
Executable file
31
bin/silex-petstore-server.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
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 -t modules/swagger-codegen/src/main/resources/silex -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l silex -o samples/client/petstore/silex"
|
||||||
|
|
||||||
|
java $JAVA_OPTS -jar $executable $ags
|
@ -60,10 +60,10 @@ public abstract class AbstractGenerator {
|
|||||||
throw new RuntimeException("can't load template " + name);
|
throw new RuntimeException("can't load template " + name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getCPResourcePath(String name) {
|
public String getCPResourcePath(String name) {
|
||||||
if (!"/".equals(File.separator)) {
|
if (!"/".equals(File.separator)) {
|
||||||
return name.replaceAll(Pattern.quote(File.separator), "/");
|
return name.replaceAll(Pattern.quote(File.separator), "/");
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -268,11 +268,12 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
|||||||
// continue
|
// continue
|
||||||
}
|
}
|
||||||
if (in == null) {
|
if (in == null) {
|
||||||
in = this.getClass().getClassLoader().getResourceAsStream(config.templateDir() + File.separator + support.templateFile);
|
in = this.getClass().getClassLoader().getResourceAsStream(getCPResourcePath(config.templateDir() + File.separator + support.templateFile));
|
||||||
}
|
}
|
||||||
File outputFile = new File(outputFilename);
|
File outputFile = new File(outputFilename);
|
||||||
OutputStream out = new FileOutputStream(outputFile, false);
|
OutputStream out = new FileOutputStream(outputFile, false);
|
||||||
if (in != null && out != null) {
|
if (in != null && out != null) {
|
||||||
|
System.out.println("writing file " + outputFile);
|
||||||
IOUtils.copy(in, out);
|
IOUtils.copy(in, out);
|
||||||
} else {
|
} else {
|
||||||
if (in == null) {
|
if (in == null) {
|
||||||
|
@ -20,7 +20,7 @@ public class ObjcClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
protected Set<String> foundationClasses = new HashSet<String>();
|
protected Set<String> foundationClasses = new HashSet<String>();
|
||||||
protected String sourceFolder = "client";
|
protected String sourceFolder = "client";
|
||||||
protected String classPrefix = "SWG";
|
protected String classPrefix = "SWG";
|
||||||
protected String projectName = "swaggerClient";
|
protected String projectName = "SwaggerClient";
|
||||||
|
|
||||||
public ObjcClientCodegen() {
|
public ObjcClientCodegen() {
|
||||||
super();
|
super();
|
||||||
|
@ -46,10 +46,11 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
typeMapping.put("long", "int");
|
typeMapping.put("long", "int");
|
||||||
typeMapping.put("double", "float");
|
typeMapping.put("double", "float");
|
||||||
typeMapping.put("array", "list");
|
typeMapping.put("array", "list");
|
||||||
typeMapping.put("map", "map");
|
typeMapping.put("map", "dict");
|
||||||
typeMapping.put("boolean", "bool");
|
typeMapping.put("boolean", "bool");
|
||||||
typeMapping.put("string", "str");
|
typeMapping.put("string", "str");
|
||||||
typeMapping.put("date", "datetime");
|
typeMapping.put("date", "datetime");
|
||||||
|
typeMapping.put("object", "object");
|
||||||
|
|
||||||
// from https://docs.python.org/release/2.5.4/ref/keywords.html
|
// from https://docs.python.org/release/2.5.4/ref/keywords.html
|
||||||
reservedWords = new HashSet<String>(
|
reservedWords = new HashSet<String>(
|
||||||
@ -111,7 +112,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
MapProperty mp = (MapProperty) p;
|
MapProperty mp = (MapProperty) p;
|
||||||
Property inner = mp.getAdditionalProperties();
|
Property inner = mp.getAdditionalProperties();
|
||||||
|
|
||||||
return getSwaggerType(p) + "(String, " + getTypeDeclaration(inner) + ")";
|
return getSwaggerType(p) + "(str, " + getTypeDeclaration(inner) + ")";
|
||||||
}
|
}
|
||||||
return super.getTypeDeclaration(p);
|
return super.getTypeDeclaration(p);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package io.swagger.codegen.languages;
|
package io.swagger.codegen.languages;
|
||||||
|
|
||||||
|
import io.swagger.codegen.CliOption;
|
||||||
import io.swagger.codegen.CodegenConfig;
|
import io.swagger.codegen.CodegenConfig;
|
||||||
import io.swagger.codegen.CodegenType;
|
import io.swagger.codegen.CodegenType;
|
||||||
import io.swagger.codegen.DefaultCodegen;
|
import io.swagger.codegen.DefaultCodegen;
|
||||||
@ -13,16 +14,16 @@ import java.util.Arrays;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||||
protected String gemName = "swagger_client";
|
protected String gemName = null;
|
||||||
protected String moduleName = null;
|
protected String moduleName = null;
|
||||||
|
protected String gemVersion = "1.0.0";
|
||||||
protected String libFolder = "lib";
|
protected String libFolder = "lib";
|
||||||
|
|
||||||
public RubyClientCodegen() {
|
public RubyClientCodegen() {
|
||||||
super();
|
super();
|
||||||
moduleName = generateModuleName();
|
modelPackage = "models";
|
||||||
modelPackage = gemName + "/models";
|
apiPackage = "api";
|
||||||
apiPackage = gemName + "/api";
|
outputFolder = "generated-code" + File.separator + "ruby";
|
||||||
outputFolder = "generated-code" + File.separatorChar + "ruby";
|
|
||||||
modelTemplateFiles.put("model.mustache", ".rb");
|
modelTemplateFiles.put("model.mustache", ".rb");
|
||||||
apiTemplateFiles.put("api.mustache", ".rb");
|
apiTemplateFiles.put("api.mustache", ".rb");
|
||||||
templateDir = "ruby";
|
templateDir = "ruby";
|
||||||
@ -39,9 +40,6 @@ public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
"if", "not", "return", "undef", "yield")
|
"if", "not", "return", "undef", "yield")
|
||||||
);
|
);
|
||||||
|
|
||||||
additionalProperties.put("gemName", gemName);
|
|
||||||
additionalProperties.put("moduleName", moduleName);
|
|
||||||
|
|
||||||
languageSpecificPrimitives.add("int");
|
languageSpecificPrimitives.add("int");
|
||||||
languageSpecificPrimitives.add("array");
|
languageSpecificPrimitives.add("array");
|
||||||
languageSpecificPrimitives.add("map");
|
languageSpecificPrimitives.add("map");
|
||||||
@ -64,18 +62,59 @@ public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
typeMapping.put("map", "Hash");
|
typeMapping.put("map", "Hash");
|
||||||
typeMapping.put("object", "Object");
|
typeMapping.put("object", "Object");
|
||||||
|
|
||||||
String baseFolder = "lib" + File.separatorChar + gemName;
|
// remove modelPackage and apiPackage added by default
|
||||||
String swaggerFolder = baseFolder + File.separatorChar + "swagger";
|
cliOptions.clear();
|
||||||
String modelFolder = baseFolder + File.separatorChar + "models";
|
cliOptions.add(new CliOption("gemName", "gem name (convention: underscore_case), default: swagger_client"));
|
||||||
|
cliOptions.add(new CliOption("moduleName", "top module name (convention: CamelCase, usually corresponding to gem name), default: SwaggerClient"));
|
||||||
|
cliOptions.add(new CliOption("gemVersion", "gem version, default: 1.0.0"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processOpts() {
|
||||||
|
super.processOpts();
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey("gemName")) {
|
||||||
|
setGemName((String) additionalProperties.get("gemName"));
|
||||||
|
}
|
||||||
|
if (additionalProperties.containsKey("moduleName")) {
|
||||||
|
setModuleName((String) additionalProperties.get("moduleName"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gemName == null && moduleName == null) {
|
||||||
|
setGemName("swagger_client");
|
||||||
|
setModuleName(generateModuleName(gemName));
|
||||||
|
} else if (gemName == null) {
|
||||||
|
setGemName(generateGemName(moduleName));
|
||||||
|
} else if (moduleName == null) {
|
||||||
|
setModuleName(generateModuleName(gemName));
|
||||||
|
}
|
||||||
|
|
||||||
|
additionalProperties.put("gemName", gemName);
|
||||||
|
additionalProperties.put("moduleName", moduleName);
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey("gemVersion")) {
|
||||||
|
setGemVersion((String) additionalProperties.get("gemVersion"));
|
||||||
|
} else {
|
||||||
|
// not set, pass the default value to template
|
||||||
|
additionalProperties.put("gemVersion", gemVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
// use constant model/api package (folder path)
|
||||||
|
setModelPackage("models");
|
||||||
|
setApiPackage("api");
|
||||||
|
|
||||||
supportingFiles.add(new SupportingFile("swagger_client.gemspec.mustache", "", gemName + ".gemspec"));
|
supportingFiles.add(new SupportingFile("swagger_client.gemspec.mustache", "", gemName + ".gemspec"));
|
||||||
supportingFiles.add(new SupportingFile("swagger_client.mustache", "lib", gemName + ".rb"));
|
supportingFiles.add(new SupportingFile("swagger_client.mustache", libFolder, gemName + ".rb"));
|
||||||
|
String baseFolder = libFolder + File.separator + gemName;
|
||||||
supportingFiles.add(new SupportingFile("monkey.mustache", baseFolder, "monkey.rb"));
|
supportingFiles.add(new SupportingFile("monkey.mustache", baseFolder, "monkey.rb"));
|
||||||
supportingFiles.add(new SupportingFile("swagger.mustache", baseFolder, "swagger.rb"));
|
supportingFiles.add(new SupportingFile("swagger.mustache", baseFolder, "swagger.rb"));
|
||||||
supportingFiles.add(new SupportingFile("swagger" + File.separatorChar + "request.mustache", swaggerFolder, "request.rb"));
|
String swaggerFolder = baseFolder + File.separator + "swagger";
|
||||||
supportingFiles.add(new SupportingFile("swagger" + File.separatorChar + "response.mustache", swaggerFolder, "response.rb"));
|
supportingFiles.add(new SupportingFile("swagger" + File.separator + "request.mustache", swaggerFolder, "request.rb"));
|
||||||
supportingFiles.add(new SupportingFile("swagger" + File.separatorChar + "api_error.mustache", swaggerFolder, "api_error.rb"));
|
supportingFiles.add(new SupportingFile("swagger" + File.separator + "response.mustache", swaggerFolder, "response.rb"));
|
||||||
supportingFiles.add(new SupportingFile("swagger" + File.separatorChar + "version.mustache", swaggerFolder, "version.rb"));
|
supportingFiles.add(new SupportingFile("swagger" + File.separator + "api_error.mustache", swaggerFolder, "api_error.rb"));
|
||||||
supportingFiles.add(new SupportingFile("swagger" + File.separatorChar + "configuration.mustache", swaggerFolder, "configuration.rb"));
|
supportingFiles.add(new SupportingFile("swagger" + File.separator + "version.mustache", swaggerFolder, "version.rb"));
|
||||||
|
supportingFiles.add(new SupportingFile("swagger" + File.separator + "configuration.mustache", swaggerFolder, "configuration.rb"));
|
||||||
|
String modelFolder = baseFolder + File.separator + modelPackage.replace("/", File.separator);
|
||||||
supportingFiles.add(new SupportingFile("base_object.mustache", modelFolder, "base_object.rb"));
|
supportingFiles.add(new SupportingFile("base_object.mustache", modelFolder, "base_object.rb"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,10 +133,17 @@ public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
/**
|
/**
|
||||||
* Generate Ruby module name from the gem name, e.g. use "SwaggerClient" for "swagger_client".
|
* Generate Ruby module name from the gem name, e.g. use "SwaggerClient" for "swagger_client".
|
||||||
*/
|
*/
|
||||||
public String generateModuleName() {
|
public String generateModuleName(String gemName) {
|
||||||
return camelize(gemName.replaceAll("[^\\w]+", "_"));
|
return camelize(gemName.replaceAll("[^\\w]+", "_"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate Ruby gem name from the module name, e.g. use "swagger_client" for "SwaggerClient".
|
||||||
|
*/
|
||||||
|
public String generateGemName(String moduleName) {
|
||||||
|
return underscore(moduleName.replaceAll("[^\\w]+", ""));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String escapeReservedWord(String name) {
|
public String escapeReservedWord(String name) {
|
||||||
return "_" + name;
|
return "_" + name;
|
||||||
@ -105,11 +151,11 @@ public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String apiFileFolder() {
|
public String apiFileFolder() {
|
||||||
return outputFolder + File.separatorChar + "lib" + File.separatorChar + gemName + File.separatorChar + "api";
|
return outputFolder + File.separator + libFolder + File.separator + gemName + File.separator + apiPackage.replace("/", File.separator);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String modelFileFolder() {
|
public String modelFileFolder() {
|
||||||
return outputFolder + File.separatorChar + "lib" + File.separatorChar + gemName + File.separatorChar + "models";
|
return outputFolder + File.separator + libFolder + File.separator + gemName + File.separator + modelPackage.replace("/", File.separator);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -230,12 +276,23 @@ public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toModelImport(String name) {
|
public String toModelImport(String name) {
|
||||||
return modelPackage() + "/" + toModelFilename(name);
|
return gemName + "/" + modelPackage() + "/" + toModelFilename(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toApiImport(String name) {
|
public String toApiImport(String name) {
|
||||||
return apiPackage() + "/" + toApiFilename(name);
|
return gemName + "/" + apiPackage() + "/" + toApiFilename(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setGemName(String gemName) {
|
||||||
|
this.gemName = gemName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModuleName(String moduleName) {
|
||||||
|
this.moduleName = moduleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGemVersion(String gemVersion) {
|
||||||
|
this.gemVersion = gemVersion;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,192 @@
|
|||||||
|
package io.swagger.codegen.languages;
|
||||||
|
|
||||||
|
import io.swagger.codegen.CodegenConfig;
|
||||||
|
import io.swagger.codegen.CodegenType;
|
||||||
|
import io.swagger.codegen.DefaultCodegen;
|
||||||
|
import io.swagger.codegen.SupportingFile;
|
||||||
|
import io.swagger.models.properties.ArrayProperty;
|
||||||
|
import io.swagger.models.properties.MapProperty;
|
||||||
|
import io.swagger.models.properties.Property;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
public class SilexServerCodegen extends DefaultCodegen implements CodegenConfig {
|
||||||
|
protected String invokerPackage;
|
||||||
|
protected String groupId = "io.swagger";
|
||||||
|
protected String artifactId = "swagger-server";
|
||||||
|
protected String artifactVersion = "1.0.0";
|
||||||
|
|
||||||
|
public SilexServerCodegen() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
invokerPackage = camelize("SwaggerServer");
|
||||||
|
|
||||||
|
String packagePath = "SwaggerServer";
|
||||||
|
|
||||||
|
modelPackage = packagePath + "/lib/models";
|
||||||
|
apiPackage = packagePath + "/lib";
|
||||||
|
outputFolder = "generated-code/silex";
|
||||||
|
|
||||||
|
// no model, api files
|
||||||
|
modelTemplateFiles.clear();
|
||||||
|
apiTemplateFiles.clear();
|
||||||
|
|
||||||
|
templateDir = "silex";
|
||||||
|
|
||||||
|
reservedWords = new HashSet<String>(
|
||||||
|
Arrays.asList(
|
||||||
|
"__halt_compiler", "abstract", "and", "array", "as", "break", "callable", "case", "catch", "class", "clone", "const", "continue", "declare", "default", "die", "do", "echo", "else", "elseif", "empty", "enddeclare", "endfor", "endforeach", "endif", "endswitch", "endwhile", "eval", "exit", "extends", "final", "for", "foreach", "function", "global", "goto", "if", "implements", "include", "include_once", "instanceof", "insteadof", "interface", "isset", "list", "namespace", "new", "or", "print", "private", "protected", "public", "require", "require_once", "return", "static", "switch", "throw", "trait", "try", "unset", "use", "var", "while", "xor")
|
||||||
|
);
|
||||||
|
|
||||||
|
additionalProperties.put("invokerPackage", invokerPackage);
|
||||||
|
additionalProperties.put("groupId", groupId);
|
||||||
|
additionalProperties.put("artifactId", artifactId);
|
||||||
|
additionalProperties.put("artifactVersion", artifactVersion);
|
||||||
|
|
||||||
|
// ref: http://php.net/manual/en/language.types.intro.php
|
||||||
|
languageSpecificPrimitives = new HashSet<String>(
|
||||||
|
Arrays.asList(
|
||||||
|
"boolean",
|
||||||
|
"int",
|
||||||
|
"integer",
|
||||||
|
"double",
|
||||||
|
"float",
|
||||||
|
"string",
|
||||||
|
"object",
|
||||||
|
"DateTime",
|
||||||
|
"mixed",
|
||||||
|
"number")
|
||||||
|
);
|
||||||
|
|
||||||
|
instantiationTypes.put("array", "array");
|
||||||
|
instantiationTypes.put("map", "map");
|
||||||
|
|
||||||
|
// ref: https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#data-types
|
||||||
|
typeMapping = new HashMap<String, String>();
|
||||||
|
typeMapping.put("integer", "int");
|
||||||
|
typeMapping.put("long", "int");
|
||||||
|
typeMapping.put("float", "float");
|
||||||
|
typeMapping.put("double", "double");
|
||||||
|
typeMapping.put("string", "string");
|
||||||
|
typeMapping.put("byte", "int");
|
||||||
|
typeMapping.put("boolean", "boolean");
|
||||||
|
typeMapping.put("date", "DateTime");
|
||||||
|
typeMapping.put("datetime", "DateTime");
|
||||||
|
typeMapping.put("file", "string");
|
||||||
|
typeMapping.put("map", "map");
|
||||||
|
typeMapping.put("array", "array");
|
||||||
|
typeMapping.put("list", "array");
|
||||||
|
typeMapping.put("object", "object");
|
||||||
|
|
||||||
|
supportingFiles.add(new SupportingFile("README.mustache", packagePath.replace('/', File.separatorChar), "README.md"));
|
||||||
|
supportingFiles.add(new SupportingFile("composer.json", packagePath.replace('/', File.separatorChar), "composer.json"));
|
||||||
|
supportingFiles.add(new SupportingFile("index.mustache", packagePath.replace('/', File.separatorChar), "index.php"));
|
||||||
|
supportingFiles.add(new SupportingFile(".htaccess", packagePath.replace('/', File.separatorChar), ".htaccess"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public CodegenType getTag() {
|
||||||
|
return CodegenType.CLIENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return "silex";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHelp() {
|
||||||
|
return "Generates a Silex server library.";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String escapeReservedWord(String name) {
|
||||||
|
return "_" + name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String apiFileFolder() {
|
||||||
|
return (outputFolder + "/" + apiPackage()).replace('/', File.separatorChar);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String modelFileFolder() {
|
||||||
|
return (outputFolder + "/" + modelPackage()).replace('/', File.separatorChar);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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) + "[string," + 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 if (instantiationTypes.containsKey(type)) {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
type = swaggerType;
|
||||||
|
}
|
||||||
|
if (type == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return toModelName(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toDefaultValue(Property p) {
|
||||||
|
return "null";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toVarName(String name) {
|
||||||
|
// parameter name starting with number won't compile
|
||||||
|
// need to escape it by appending _ at the beginning
|
||||||
|
if (name.matches("^[0-9]")) {
|
||||||
|
name = "_" + name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return the name in underscore style
|
||||||
|
// PhoneNumber => phone_number
|
||||||
|
return underscore(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toParamName(String name) {
|
||||||
|
// should be the same as variable name
|
||||||
|
return toVarName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toModelName(String name) {
|
||||||
|
// model name cannot use reserved keyword
|
||||||
|
if (reservedWords.contains(name)) {
|
||||||
|
escapeReservedWord(name); // e.g. return => _return
|
||||||
|
}
|
||||||
|
|
||||||
|
// camelize the model name
|
||||||
|
// phone_number => PhoneNumber
|
||||||
|
return camelize(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toModelFilename(String name) {
|
||||||
|
// should be the same as the model name
|
||||||
|
return toModelName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -14,6 +14,7 @@ io.swagger.codegen.languages.RetrofitClientCodegen
|
|||||||
io.swagger.codegen.languages.RubyClientCodegen
|
io.swagger.codegen.languages.RubyClientCodegen
|
||||||
io.swagger.codegen.languages.ScalaClientCodegen
|
io.swagger.codegen.languages.ScalaClientCodegen
|
||||||
io.swagger.codegen.languages.ScalatraServerCodegen
|
io.swagger.codegen.languages.ScalatraServerCodegen
|
||||||
|
io.swagger.codegen.languages.SilexServerCodegen
|
||||||
io.swagger.codegen.languages.SpringMVCServerCodegen
|
io.swagger.codegen.languages.SpringMVCServerCodegen
|
||||||
io.swagger.codegen.languages.StaticDocCodegen
|
io.swagger.codegen.languages.StaticDocCodegen
|
||||||
io.swagger.codegen.languages.StaticHtmlGenerator
|
io.swagger.codegen.languages.StaticHtmlGenerator
|
||||||
|
Binary file not shown.
@ -198,33 +198,53 @@ sub deserialize
|
|||||||
{
|
{
|
||||||
my ($self, $class, $data) = @_;
|
my ($self, $class, $data) = @_;
|
||||||
$log->debugf("deserializing %s for %s", $data, $class);
|
$log->debugf("deserializing %s for %s", $data, $class);
|
||||||
my $_result;
|
|
||||||
|
|
||||||
if (not defined $data) {
|
if (not defined $data) {
|
||||||
return undef;
|
return undef;
|
||||||
} elsif ( lc(substr($class, 0, 4)) eq 'map[') { #hash
|
} elsif ( (substr($class, 0, 5)) eq 'HASH[') { #hash
|
||||||
$_result = \(json_decode $data);
|
if ($class =~ /^HASH\[(.*),(.*)\]$/) {
|
||||||
} elsif ( lc(substr($class, 0, 6)) eq 'array[' ) { # array of data
|
my ($key_type, $type) = ($1, $2);
|
||||||
|
my %hash;
|
||||||
|
my $decoded_data = decode_json $data;
|
||||||
|
foreach my $key (keys %$decoded_data) {
|
||||||
|
if (ref $decoded_data->{$key} eq 'HASH') {
|
||||||
|
$hash{$key} = $self->deserialize($type, encode_json $decoded_data->{$key});
|
||||||
|
} else {
|
||||||
|
$hash{$key} = $self->deserialize($type, $decoded_data->{$key});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return \%hash;
|
||||||
|
} else {
|
||||||
|
#TODO log error
|
||||||
|
}
|
||||||
|
|
||||||
|
} elsif ( (substr($class, 0, 6)) eq 'ARRAY[' ) { # array of data
|
||||||
return $data if $data eq '[]'; # return if empty array
|
return $data if $data eq '[]'; # return if empty array
|
||||||
|
|
||||||
my $_sub_class = substr($class, 6, -1);
|
my $_sub_class = substr($class, 6, -1);
|
||||||
my @_json_data = json_decode $data;
|
my $_json_data = decode_json $data;
|
||||||
my @_values = ();
|
my @_values = ();
|
||||||
foreach my $_value (@_json_data) {
|
foreach my $_value (@$_json_data) {
|
||||||
push @_values, $self->deserialize($_sub_class, $_value);
|
if (ref $_value eq 'ARRAY') {
|
||||||
|
push @_values, $self->deserialize($_sub_class, encode_json $_value);
|
||||||
|
} else {
|
||||||
|
push @_values, $self->deserialize($_sub_class, $_value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$_result = \@_values;
|
return \@_values;
|
||||||
} elsif ($class eq 'DateTime') {
|
} elsif ($class eq 'DateTime') {
|
||||||
$_result = DateTime->from_epoch(epoch => str2time($data));
|
return DateTime->from_epoch(epoch => str2time($data));
|
||||||
} elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) { #TODO revise the primitive type
|
} elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) {
|
||||||
$_result= $data;
|
return $data;
|
||||||
} else { # model
|
} else { # model
|
||||||
my $_instance = use_module("WWW::{{invokerPackage}}::Object::$class")->new;
|
my $_instance = use_module("WWW::SwaggerClient::Object::$class")->new;
|
||||||
$_result = $_instance->from_hash(decode_json $data);
|
if (ref $data eq "HASH") {
|
||||||
|
return $_instance->from_hash($data);
|
||||||
|
} else { # string, need to json decode first
|
||||||
|
return $_instance->from_hash(decode_json $data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $_result;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# return 'Accept' based on an array of accept provided
|
# return 'Accept' based on an array of accept provided
|
||||||
|
@ -25,7 +25,7 @@ class ApiClient {
|
|||||||
public static $PUT = "PUT";
|
public static $PUT = "PUT";
|
||||||
public static $DELETE = "DELETE";
|
public static $DELETE = "DELETE";
|
||||||
|
|
||||||
private static $default_header = array();
|
private $default_header = array();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @var string timeout (second) of the HTTP request, by default set to 0, no timeout
|
* @var string timeout (second) of the HTTP request, by default set to 0, no timeout
|
||||||
@ -58,7 +58,7 @@ class ApiClient {
|
|||||||
if (!is_string($header_name))
|
if (!is_string($header_name))
|
||||||
throw new \InvalidArgumentException('Header name must be a string.');
|
throw new \InvalidArgumentException('Header name must be a string.');
|
||||||
|
|
||||||
self::$default_header[$header_name] = $header_value;
|
$this->default_header[$header_name] = $header_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,7 +67,7 @@ class ApiClient {
|
|||||||
* @return array default header
|
* @return array default header
|
||||||
*/
|
*/
|
||||||
public function getDefaultHeader() {
|
public function getDefaultHeader() {
|
||||||
return self::$default_header;
|
return $this->default_header;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -76,7 +76,7 @@ class ApiClient {
|
|||||||
* @param string $header_name header name (e.g. Token)
|
* @param string $header_name header name (e.g. Token)
|
||||||
*/
|
*/
|
||||||
public function deleteDefaultHeader($header_name) {
|
public function deleteDefaultHeader($header_name) {
|
||||||
unset(self::$default_header[$header_name]);
|
unset($this->default_header[$header_name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -182,7 +182,7 @@ class ApiClient {
|
|||||||
$this->updateParamsForAuth($headerParams, $queryParams, $authSettings);
|
$this->updateParamsForAuth($headerParams, $queryParams, $authSettings);
|
||||||
|
|
||||||
# construct the http header
|
# construct the http header
|
||||||
$headerParams = array_merge((array)self::$default_header, (array)$headerParams);
|
$headerParams = array_merge((array)$this->default_header, (array)$headerParams);
|
||||||
|
|
||||||
foreach ($headerParams as $key => $val) {
|
foreach ($headerParams as $key => $val) {
|
||||||
$headers[] = "$key: $val";
|
$headers[] = "$key: $val";
|
||||||
@ -307,8 +307,8 @@ class ApiClient {
|
|||||||
* @param string $value a string which will be part of the path
|
* @param string $value a string which will be part of the path
|
||||||
* @return string the serialized object
|
* @return string the serialized object
|
||||||
*/
|
*/
|
||||||
public static function toPathValue($value) {
|
public function toPathValue($value) {
|
||||||
return rawurlencode(self::toString($value));
|
return rawurlencode($this->toString($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -319,11 +319,11 @@ class ApiClient {
|
|||||||
* @param object $object an object to be serialized to a string
|
* @param object $object an object to be serialized to a string
|
||||||
* @return string the serialized object
|
* @return string the serialized object
|
||||||
*/
|
*/
|
||||||
public static function toQueryValue($object) {
|
public function toQueryValue($object) {
|
||||||
if (is_array($object)) {
|
if (is_array($object)) {
|
||||||
return implode(',', $object);
|
return implode(',', $object);
|
||||||
} else {
|
} else {
|
||||||
return self::toString($object);
|
return $this->toString($object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,8 +334,8 @@ class ApiClient {
|
|||||||
* @param string $value a string which will be part of the header
|
* @param string $value a string which will be part of the header
|
||||||
* @return string the header string
|
* @return string the header string
|
||||||
*/
|
*/
|
||||||
public static function toHeaderValue($value) {
|
public function toHeaderValue($value) {
|
||||||
return self::toString($value);
|
return $this->toString($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -345,8 +345,8 @@ class ApiClient {
|
|||||||
* @param string $value the value of the form parameter
|
* @param string $value the value of the form parameter
|
||||||
* @return string the form string
|
* @return string the form string
|
||||||
*/
|
*/
|
||||||
public static function toFormValue($value) {
|
public function toFormValue($value) {
|
||||||
return self::toString($value);
|
return $this->toString($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -356,7 +356,7 @@ class ApiClient {
|
|||||||
* @param string $value the value of the parameter
|
* @param string $value the value of the parameter
|
||||||
* @return string the header string
|
* @return string the header string
|
||||||
*/
|
*/
|
||||||
public static function toString($value) {
|
public function toString($value) {
|
||||||
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
||||||
return $value->format(\DateTime::ISO8601);
|
return $value->format(\DateTime::ISO8601);
|
||||||
}
|
}
|
||||||
@ -372,7 +372,7 @@ class ApiClient {
|
|||||||
* @param string $class class name is passed as a string
|
* @param string $class class name is passed as a string
|
||||||
* @return object an instance of $class
|
* @return object an instance of $class
|
||||||
*/
|
*/
|
||||||
public static function deserialize($data, $class)
|
public function deserialize($data, $class)
|
||||||
{
|
{
|
||||||
if (null === $data) {
|
if (null === $data) {
|
||||||
$deserialized = null;
|
$deserialized = null;
|
||||||
@ -383,14 +383,14 @@ class ApiClient {
|
|||||||
$subClass_array = explode(',', $inner, 2);
|
$subClass_array = explode(',', $inner, 2);
|
||||||
$subClass = $subClass_array[1];
|
$subClass = $subClass_array[1];
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$deserialized[$key] = self::deserialize($value, $subClass);
|
$deserialized[$key] = $this->deserialize($value, $subClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif (strcasecmp(substr($class, 0, 6),'array[') == 0) {
|
} elseif (strcasecmp(substr($class, 0, 6),'array[') == 0) {
|
||||||
$subClass = substr($class, 6, -1);
|
$subClass = substr($class, 6, -1);
|
||||||
$values = array();
|
$values = array();
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$values[] = self::deserialize($value, $subClass);
|
$values[] = $this->deserialize($value, $subClass);
|
||||||
}
|
}
|
||||||
$deserialized = $values;
|
$deserialized = $values;
|
||||||
} elseif ($class == 'DateTime') {
|
} elseif ($class == 'DateTime') {
|
||||||
@ -404,7 +404,7 @@ class ApiClient {
|
|||||||
foreach ($instance::$swaggerTypes as $property => $type) {
|
foreach ($instance::$swaggerTypes as $property => $type) {
|
||||||
$original_property_name = $instance::$attributeMap[$property];
|
$original_property_name = $instance::$attributeMap[$property];
|
||||||
if (isset($original_property_name) && isset($data->$original_property_name)) {
|
if (isset($original_property_name) && isset($data->$original_property_name)) {
|
||||||
$instance->$property = self::deserialize($data->$original_property_name, $type);
|
$instance->$property = $this->deserialize($data->$original_property_name, $type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$deserialized = $instance;
|
$deserialized = $instance;
|
||||||
@ -419,7 +419,7 @@ class ApiClient {
|
|||||||
* @param array[string] $accept Array of header
|
* @param array[string] $accept Array of header
|
||||||
* @return string Accept (e.g. application/json)
|
* @return string Accept (e.g. application/json)
|
||||||
*/
|
*/
|
||||||
public static function selectHeaderAccept($accept) {
|
public function selectHeaderAccept($accept) {
|
||||||
if (count($accept) === 0 or (count($accept) === 1 and $accept[0] === '')) {
|
if (count($accept) === 0 or (count($accept) === 1 and $accept[0] === '')) {
|
||||||
return NULL;
|
return NULL;
|
||||||
} elseif (preg_grep("/application\/json/i", $accept)) {
|
} elseif (preg_grep("/application\/json/i", $accept)) {
|
||||||
@ -435,7 +435,7 @@ class ApiClient {
|
|||||||
* @param array[string] content_type_array Array fo content-type
|
* @param array[string] content_type_array Array fo content-type
|
||||||
* @return string Content-Type (e.g. application/json)
|
* @return string Content-Type (e.g. application/json)
|
||||||
*/
|
*/
|
||||||
public static function selectHeaderContentType($content_type) {
|
public function selectHeaderContentType($content_type) {
|
||||||
if (count($content_type) === 0 or (count($content_type) === 1 and $content_type[0] === '')) {
|
if (count($content_type) === 0 or (count($content_type) === 1 and $content_type[0] === '')) {
|
||||||
return 'application/json';
|
return 'application/json';
|
||||||
} elseif (preg_grep("/application\/json/i", $content_type)) {
|
} elseif (preg_grep("/application\/json/i", $content_type)) {
|
@ -100,7 +100,7 @@ class {{classname}} {
|
|||||||
}{{/pathParams}}
|
}{{/pathParams}}
|
||||||
{{#formParams}}// form params
|
{{#formParams}}// form params
|
||||||
if (${{paramName}} !== null) {
|
if (${{paramName}} !== null) {
|
||||||
$formParams['{{baseName}}'] = {{#isFile}}'@' . {{/isFile}}$this->apiClient->toFormValue(${{paramName}});
|
$formParams['{{baseName}}'] = {{#isFile}}'@'.{{/isFile}}$this->apiClient->toFormValue(${{paramName}});
|
||||||
}{{/formParams}}
|
}{{/formParams}}
|
||||||
{{#bodyParams}}// body params
|
{{#bodyParams}}// body params
|
||||||
$_tempBody = null;
|
$_tempBody = null;
|
||||||
|
@ -65,6 +65,14 @@ class {{classname}} implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
{{/model}}
|
{{/model}}
|
||||||
{{/models}}
|
{{/models}}
|
||||||
|
@ -168,13 +168,20 @@ class ApiClient(object):
|
|||||||
sub_class = match.group(1)
|
sub_class = match.group(1)
|
||||||
return [self.deserialize(sub_obj, sub_class) for sub_obj in obj]
|
return [self.deserialize(sub_obj, sub_class) for sub_obj in obj]
|
||||||
|
|
||||||
if obj_class in ['int', 'float', 'dict', 'list', 'str', 'bool', 'datetime']:
|
if 'dict(' in obj_class:
|
||||||
|
match = re.match('dict\((.*), (.*)\)', obj_class)
|
||||||
|
sub_class = match.group(2)
|
||||||
|
return {k: self.deserialize(v, sub_class) for k, v in iteritems(obj)}
|
||||||
|
|
||||||
|
if obj_class in ['int', 'float', 'dict', 'list', 'str', 'bool', 'datetime', "object"]:
|
||||||
obj_class = eval(obj_class)
|
obj_class = eval(obj_class)
|
||||||
else: # not a native type, must be model class
|
else: # not a native type, must be model class
|
||||||
obj_class = eval('models.' + obj_class)
|
obj_class = eval('models.' + obj_class)
|
||||||
|
|
||||||
if obj_class in [int, float, dict, list, str, bool]:
|
if obj_class in [int, float, dict, list, str, bool]:
|
||||||
return obj_class(obj)
|
return obj_class(obj)
|
||||||
|
elif obj_class == object:
|
||||||
|
return object()
|
||||||
elif obj_class == datetime:
|
elif obj_class == datetime:
|
||||||
return self.__parse_string_to_datetime(obj)
|
return self.__parse_string_to_datetime(obj)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
module {{moduleName}}
|
module {{moduleName}}
|
||||||
module Swagger
|
module Swagger
|
||||||
VERSION = "{{appVersion}}"
|
VERSION = "{{gemVersion}}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,7 +8,7 @@ require '{{gemName}}/swagger/response'
|
|||||||
require '{{gemName}}/swagger/version'
|
require '{{gemName}}/swagger/version'
|
||||||
|
|
||||||
# Models
|
# Models
|
||||||
require '{{modelPackage}}/base_object'
|
require '{{gemName}}/{{modelPackage}}/base_object'
|
||||||
{{#models}}
|
{{#models}}
|
||||||
require '{{importPath}}'
|
require '{{importPath}}'
|
||||||
{{/models}}
|
{{/models}}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
|
||||||
|
</IfModule>
|
@ -0,0 +1,10 @@
|
|||||||
|
# Swagger generated server
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the
|
||||||
|
[swagger-spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This
|
||||||
|
is an example of building a PHP server.
|
||||||
|
|
||||||
|
This example uses the [Silex](http://silex.sensiolabs.org/) micro-framework. To see how to make this your own, please take a look at the template here:
|
||||||
|
|
||||||
|
[TEMPLATES](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/silex/)
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"silex/silex": "~1.2"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Silex\Application;
|
||||||
|
|
||||||
|
$app = new Silex\Application();
|
||||||
|
|
||||||
|
{{#apiInfo}}
|
||||||
|
{{#apis}}
|
||||||
|
{{#operations}}
|
||||||
|
{{#operation}}
|
||||||
|
|
||||||
|
$app->{{httpMethod}}('{{path}}', function(Application $app, Request $request{{#pathParams}}, ${{paramName}}{{/pathParams}}) {
|
||||||
|
{{#queryParams}}${{paramName}} = $request->get('{{paramName}}');{{newline}} {{/queryParams}}
|
||||||
|
{{#formParams}}${{paramName}} = $request->get('{{paramName}}');{{newline}} {{/formParams}}
|
||||||
|
return new Response('How about implementing {{nickname}} as a {{httpMethod}} method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
{{/operation}}
|
||||||
|
{{/operations}}
|
||||||
|
{{/apis}}
|
||||||
|
{{/apiInfo}}
|
||||||
|
|
||||||
|
$app->run();
|
Binary file not shown.
@ -500,7 +500,7 @@ namespace IO.Swagger.Api {
|
|||||||
|
|
||||||
|
|
||||||
// authentication setting, if any
|
// authentication setting, if any
|
||||||
String[] authSettings = new String[] { "petstore_auth", "api_key" };
|
String[] authSettings = new String[] { "api_key", "petstore_auth" };
|
||||||
|
|
||||||
// make the HTTP request
|
// make the HTTP request
|
||||||
IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings);
|
IRestResponse response = (IRestResponse) apiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings);
|
||||||
@ -540,7 +540,7 @@ namespace IO.Swagger.Api {
|
|||||||
|
|
||||||
|
|
||||||
// authentication setting, if any
|
// authentication setting, if any
|
||||||
String[] authSettings = new String[] { "petstore_auth", "api_key" };
|
String[] authSettings = new String[] { "api_key", "petstore_auth" };
|
||||||
|
|
||||||
// make the HTTP request
|
// make the HTTP request
|
||||||
IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings);
|
IRestResponse response = (IRestResponse) await apiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings);
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IDESourceControlProjectFavoriteDictionaryKey</key>
|
|
||||||
<false/>
|
|
||||||
<key>IDESourceControlProjectIdentifier</key>
|
|
||||||
<string>81EB09FA-DD8C-4FE1-82D3-1FB6FF0D9C43</string>
|
|
||||||
<key>IDESourceControlProjectName</key>
|
|
||||||
<string>PetstoreClient</string>
|
|
||||||
<key>IDESourceControlProjectOriginsDictionary</key>
|
|
||||||
<dict>
|
|
||||||
<key>E5BBF0AA85077C865C95437976D06D819733A208</key>
|
|
||||||
<string>ssh://github.com/wordnik/swagger-codegen.git</string>
|
|
||||||
</dict>
|
|
||||||
<key>IDESourceControlProjectPath</key>
|
|
||||||
<string>samples/client/petstore/objc/PetstoreClient.xcworkspace</string>
|
|
||||||
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
|
|
||||||
<dict>
|
|
||||||
<key>E5BBF0AA85077C865C95437976D06D819733A208</key>
|
|
||||||
<string>../../../../..</string>
|
|
||||||
</dict>
|
|
||||||
<key>IDESourceControlProjectURL</key>
|
|
||||||
<string>ssh://github.com/wordnik/swagger-codegen.git</string>
|
|
||||||
<key>IDESourceControlProjectVersion</key>
|
|
||||||
<integer>111</integer>
|
|
||||||
<key>IDESourceControlProjectWCCIdentifier</key>
|
|
||||||
<string>E5BBF0AA85077C865C95437976D06D819733A208</string>
|
|
||||||
<key>IDESourceControlProjectWCConfigurations</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
|
|
||||||
<string>public.vcs.git</string>
|
|
||||||
<key>IDESourceControlWCCIdentifierKey</key>
|
|
||||||
<string>E5BBF0AA85077C865C95437976D06D819733A208</string>
|
|
||||||
<key>IDESourceControlWCCName</key>
|
|
||||||
<string>swagger-codegen</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
@ -1,5 +1,5 @@
|
|||||||
platform :ios, '6.0'
|
platform :ios, '6.0'
|
||||||
xcodeproj 'swaggerClient/PetstoreClient.xcodeproj'
|
xcodeproj 'SwaggerClient/SwaggerClient.xcodeproj'
|
||||||
pod 'AFNetworking', '~> 2.1'
|
pod 'AFNetworking', '~> 2.1'
|
||||||
pod 'JSONModel', '~> 1.0'
|
pod 'JSONModel', '~> 1.0'
|
||||||
pod 'ISO8601'
|
pod 'ISO8601'
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- AFNetworking (2.5.4):
|
- AFNetworking (2.5.4):
|
||||||
- AFNetworking/NSURLConnection
|
- AFNetworking/NSURLConnection (= 2.5.4)
|
||||||
- AFNetworking/NSURLSession
|
- AFNetworking/NSURLSession (= 2.5.4)
|
||||||
- AFNetworking/Reachability
|
- AFNetworking/Reachability (= 2.5.4)
|
||||||
- AFNetworking/Security
|
- AFNetworking/Security (= 2.5.4)
|
||||||
- AFNetworking/Serialization
|
- AFNetworking/Serialization (= 2.5.4)
|
||||||
- AFNetworking/UIKit
|
- AFNetworking/UIKit (= 2.5.4)
|
||||||
- AFNetworking/NSURLConnection (2.5.4):
|
- AFNetworking/NSURLConnection (2.5.4):
|
||||||
- AFNetworking/Reachability
|
- AFNetworking/Reachability
|
||||||
- AFNetworking/Security
|
- AFNetworking/Security
|
||||||
@ -33,4 +33,4 @@ SPEC CHECKSUMS:
|
|||||||
ISO8601: 8d8a22d5edf0554a1cf75bac028c76c1dc0ffaef
|
ISO8601: 8d8a22d5edf0554a1cf75bac028c76c1dc0ffaef
|
||||||
JSONModel: ec77e9865236a7a09d9cf7668df6b4b328d9ec1d
|
JSONModel: ec77e9865236a7a09d9cf7668df6b4b328d9ec1d
|
||||||
|
|
||||||
COCOAPODS: 0.33.1
|
COCOAPODS: 0.37.1
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<Workspace
|
<Workspace
|
||||||
version = "1.0">
|
version = "1.0">
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "group:PetstoreClient/PetstoreClient.xcodeproj">
|
location = "group:SwaggerClient/SwaggerClient.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Pods/Pods.xcodeproj">
|
location = "group:Pods/Pods.xcodeproj">
|
Binary file not shown.
@ -63,14 +63,14 @@
|
|||||||
CFD1B66E1B05EC7D00DCCD51 /* JSONValueTransformer+ISO8601.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JSONValueTransformer+ISO8601.h"; sourceTree = "<group>"; };
|
CFD1B66E1B05EC7D00DCCD51 /* JSONValueTransformer+ISO8601.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JSONValueTransformer+ISO8601.h"; sourceTree = "<group>"; };
|
||||||
CFD1B66F1B05EC7D00DCCD51 /* JSONValueTransformer+ISO8601.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "JSONValueTransformer+ISO8601.m"; sourceTree = "<group>"; };
|
CFD1B66F1B05EC7D00DCCD51 /* JSONValueTransformer+ISO8601.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "JSONValueTransformer+ISO8601.m"; sourceTree = "<group>"; };
|
||||||
E2B6DA00BE52336E23783686 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "../Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
|
E2B6DA00BE52336E23783686 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "../Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
EA6699961811D2FA00A70D03 /* PetstoreClient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PetstoreClient.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
EA6699961811D2FA00A70D03 /* SwaggerClient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwaggerClient.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
EA6699991811D2FA00A70D03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
EA6699991811D2FA00A70D03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
EA66999B1811D2FA00A70D03 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
EA66999B1811D2FA00A70D03 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||||
EA66999D1811D2FA00A70D03 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
EA66999D1811D2FA00A70D03 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||||
EA6699A11811D2FA00A70D03 /* PetstoreClient-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PetstoreClient-Info.plist"; sourceTree = "<group>"; };
|
EA6699A11811D2FA00A70D03 /* SwaggerClient-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SwaggerClient-Info.plist"; sourceTree = "<group>"; };
|
||||||
EA6699A31811D2FA00A70D03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
EA6699A31811D2FA00A70D03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
EA6699A51811D2FA00A70D03 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
EA6699A51811D2FA00A70D03 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||||
EA6699A71811D2FA00A70D03 /* PetstoreClient-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PetstoreClient-Prefix.pch"; sourceTree = "<group>"; };
|
EA6699A71811D2FA00A70D03 /* SwaggerClient-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SwaggerClient-Prefix.pch"; sourceTree = "<group>"; };
|
||||||
EA6699A81811D2FA00A70D03 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
EA6699A81811D2FA00A70D03 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||||
EA6699A91811D2FA00A70D03 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
EA6699A91811D2FA00A70D03 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||||
EA6699AC1811D2FA00A70D03 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
|
EA6699AC1811D2FA00A70D03 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
|
||||||
@ -78,8 +78,8 @@
|
|||||||
EA6699B11811D2FA00A70D03 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
EA6699B11811D2FA00A70D03 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||||
EA6699B21811D2FA00A70D03 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
EA6699B21811D2FA00A70D03 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
||||||
EA6699B41811D2FA00A70D03 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
EA6699B41811D2FA00A70D03 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||||
EA6699BA1811D2FB00A70D03 /* PetstoreClientTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PetstoreClientTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
EA6699BA1811D2FB00A70D03 /* SwaggerClientTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwaggerClientTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
EA6699C31811D2FB00A70D03 /* PetstoreClientTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PetstoreClientTests-Info.plist"; sourceTree = "<group>"; };
|
EA6699C31811D2FB00A70D03 /* SwaggerClientTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SwaggerClientTests-Info.plist"; sourceTree = "<group>"; };
|
||||||
EA6699C51811D2FB00A70D03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
EA6699C51811D2FB00A70D03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
EA6699C71811D2FB00A70D03 /* PetApiTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PetApiTest.m; sourceTree = "<group>"; };
|
EA6699C71811D2FB00A70D03 /* PetApiTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PetApiTest.m; sourceTree = "<group>"; };
|
||||||
EA8B8AA21AC6683700638FBB /* SWGQueryParamCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWGQueryParamCollection.h; sourceTree = "<group>"; };
|
EA8B8AA21AC6683700638FBB /* SWGQueryParamCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWGQueryParamCollection.h; sourceTree = "<group>"; };
|
||||||
@ -151,8 +151,8 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EAEA85CB1811D3AE00F06E69 /* client */,
|
EAEA85CB1811D3AE00F06E69 /* client */,
|
||||||
EA66999F1811D2FA00A70D03 /* PetstoreClient */,
|
EA66999F1811D2FA00A70D03 /* SwaggerClient */,
|
||||||
EA6699C11811D2FB00A70D03 /* PetstoreClientTests */,
|
EA6699C11811D2FB00A70D03 /* SwaggerClientTests */,
|
||||||
EA6699981811D2FA00A70D03 /* Frameworks */,
|
EA6699981811D2FA00A70D03 /* Frameworks */,
|
||||||
EA6699971811D2FA00A70D03 /* Products */,
|
EA6699971811D2FA00A70D03 /* Products */,
|
||||||
1A15B3DE4358A178ABAEC251 /* Pods */,
|
1A15B3DE4358A178ABAEC251 /* Pods */,
|
||||||
@ -162,8 +162,8 @@
|
|||||||
EA6699971811D2FA00A70D03 /* Products */ = {
|
EA6699971811D2FA00A70D03 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EA6699961811D2FA00A70D03 /* PetstoreClient.app */,
|
EA6699961811D2FA00A70D03 /* SwaggerClient.app */,
|
||||||
EA6699BA1811D2FB00A70D03 /* PetstoreClientTests.xctest */,
|
EA6699BA1811D2FB00A70D03 /* SwaggerClientTests.xctest */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -181,7 +181,7 @@
|
|||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
EA66999F1811D2FA00A70D03 /* PetstoreClient */ = {
|
EA66999F1811D2FA00A70D03 /* SwaggerClient */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EA6699A81811D2FA00A70D03 /* AppDelegate.h */,
|
EA6699A81811D2FA00A70D03 /* AppDelegate.h */,
|
||||||
@ -193,22 +193,22 @@
|
|||||||
EA6699B41811D2FA00A70D03 /* Images.xcassets */,
|
EA6699B41811D2FA00A70D03 /* Images.xcassets */,
|
||||||
EA6699A01811D2FA00A70D03 /* Supporting Files */,
|
EA6699A01811D2FA00A70D03 /* Supporting Files */,
|
||||||
);
|
);
|
||||||
path = PetstoreClient;
|
path = SwaggerClient;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
EA6699A01811D2FA00A70D03 /* Supporting Files */ = {
|
EA6699A01811D2FA00A70D03 /* Supporting Files */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EAFBEABA1A925B8500A27431 /* test-1.png */,
|
EAFBEABA1A925B8500A27431 /* test-1.png */,
|
||||||
EA6699A11811D2FA00A70D03 /* PetstoreClient-Info.plist */,
|
EA6699A11811D2FA00A70D03 /* SwaggerClient-Info.plist */,
|
||||||
EA6699A21811D2FA00A70D03 /* InfoPlist.strings */,
|
EA6699A21811D2FA00A70D03 /* InfoPlist.strings */,
|
||||||
EA6699A51811D2FA00A70D03 /* main.m */,
|
EA6699A51811D2FA00A70D03 /* main.m */,
|
||||||
EA6699A71811D2FA00A70D03 /* PetstoreClient-Prefix.pch */,
|
EA6699A71811D2FA00A70D03 /* SwaggerClient-Prefix.pch */,
|
||||||
);
|
);
|
||||||
name = "Supporting Files";
|
name = "Supporting Files";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
EA6699C11811D2FB00A70D03 /* PetstoreClientTests */ = {
|
EA6699C11811D2FB00A70D03 /* SwaggerClientTests */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EA8CD3EB1AC274BE00C47D0B /* PetApiTest.h */,
|
EA8CD3EB1AC274BE00C47D0B /* PetApiTest.h */,
|
||||||
@ -216,13 +216,13 @@
|
|||||||
EA6699C71811D2FB00A70D03 /* PetApiTest.m */,
|
EA6699C71811D2FB00A70D03 /* PetApiTest.m */,
|
||||||
EA6699C21811D2FB00A70D03 /* Supporting Files */,
|
EA6699C21811D2FB00A70D03 /* Supporting Files */,
|
||||||
);
|
);
|
||||||
path = PetstoreClientTests;
|
path = SwaggerClientTests;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
EA6699C21811D2FB00A70D03 /* Supporting Files */ = {
|
EA6699C21811D2FB00A70D03 /* Supporting Files */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EA6699C31811D2FB00A70D03 /* PetstoreClientTests-Info.plist */,
|
EA6699C31811D2FB00A70D03 /* SwaggerClientTests-Info.plist */,
|
||||||
EA6699C41811D2FB00A70D03 /* InfoPlist.strings */,
|
EA6699C41811D2FB00A70D03 /* InfoPlist.strings */,
|
||||||
);
|
);
|
||||||
name = "Supporting Files";
|
name = "Supporting Files";
|
||||||
@ -267,9 +267,9 @@
|
|||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
EA6699951811D2FA00A70D03 /* PetstoreClient */ = {
|
EA6699951811D2FA00A70D03 /* SwaggerClient */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = EA6699CB1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "PetstoreClient" */;
|
buildConfigurationList = EA6699CB1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "SwaggerClient" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
04DAA264FD78471BBAD25173 /* Check Pods Manifest.lock */,
|
04DAA264FD78471BBAD25173 /* Check Pods Manifest.lock */,
|
||||||
EA6699921811D2FA00A70D03 /* Sources */,
|
EA6699921811D2FA00A70D03 /* Sources */,
|
||||||
@ -281,14 +281,14 @@
|
|||||||
);
|
);
|
||||||
dependencies = (
|
dependencies = (
|
||||||
);
|
);
|
||||||
name = PetstoreClient;
|
name = SwaggerClient;
|
||||||
productName = PetstoreClient;
|
productName = PetstoreClient;
|
||||||
productReference = EA6699961811D2FA00A70D03 /* PetstoreClient.app */;
|
productReference = EA6699961811D2FA00A70D03 /* SwaggerClient.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
EA6699B91811D2FB00A70D03 /* PetstoreClientTests */ = {
|
EA6699B91811D2FB00A70D03 /* SwaggerClientTests */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = EA6699CE1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "PetstoreClientTests" */;
|
buildConfigurationList = EA6699CE1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "SwaggerClientTests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
EA6699B61811D2FB00A70D03 /* Sources */,
|
EA6699B61811D2FB00A70D03 /* Sources */,
|
||||||
EA6699B71811D2FB00A70D03 /* Frameworks */,
|
EA6699B71811D2FB00A70D03 /* Frameworks */,
|
||||||
@ -299,9 +299,9 @@
|
|||||||
dependencies = (
|
dependencies = (
|
||||||
EA6699C01811D2FB00A70D03 /* PBXTargetDependency */,
|
EA6699C01811D2FB00A70D03 /* PBXTargetDependency */,
|
||||||
);
|
);
|
||||||
name = PetstoreClientTests;
|
name = SwaggerClientTests;
|
||||||
productName = PetstoreClientTests;
|
productName = PetstoreClientTests;
|
||||||
productReference = EA6699BA1811D2FB00A70D03 /* PetstoreClientTests.xctest */;
|
productReference = EA6699BA1811D2FB00A70D03 /* SwaggerClientTests.xctest */;
|
||||||
productType = "com.apple.product-type.bundle.unit-test";
|
productType = "com.apple.product-type.bundle.unit-test";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
@ -319,7 +319,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
buildConfigurationList = EA6699911811D2FA00A70D03 /* Build configuration list for PBXProject "PetstoreClient" */;
|
buildConfigurationList = EA6699911811D2FA00A70D03 /* Build configuration list for PBXProject "SwaggerClient" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
developmentRegion = English;
|
developmentRegion = English;
|
||||||
hasScannedForEncodings = 0;
|
hasScannedForEncodings = 0;
|
||||||
@ -332,8 +332,8 @@
|
|||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
targets = (
|
targets = (
|
||||||
EA6699951811D2FA00A70D03 /* PetstoreClient */,
|
EA6699951811D2FA00A70D03 /* SwaggerClient */,
|
||||||
EA6699B91811D2FB00A70D03 /* PetstoreClientTests */,
|
EA6699B91811D2FB00A70D03 /* SwaggerClientTests */,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
@ -435,7 +435,7 @@
|
|||||||
/* Begin PBXTargetDependency section */
|
/* Begin PBXTargetDependency section */
|
||||||
EA6699C01811D2FB00A70D03 /* PBXTargetDependency */ = {
|
EA6699C01811D2FB00A70D03 /* PBXTargetDependency */ = {
|
||||||
isa = PBXTargetDependency;
|
isa = PBXTargetDependency;
|
||||||
target = EA6699951811D2FA00A70D03 /* PetstoreClient */;
|
target = EA6699951811D2FA00A70D03 /* SwaggerClient */;
|
||||||
targetProxy = EA6699BF1811D2FB00A70D03 /* PBXContainerItemProxy */;
|
targetProxy = EA6699BF1811D2FB00A70D03 /* PBXContainerItemProxy */;
|
||||||
};
|
};
|
||||||
/* End PBXTargetDependency section */
|
/* End PBXTargetDependency section */
|
||||||
@ -557,13 +557,13 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "PetstoreClient/PetstoreClient-Prefix.pch";
|
GCC_PREFIX_HEADER = "SwaggerClient/SwaggerClient-Prefix.pch";
|
||||||
INFOPLIST_FILE = "PetstoreClient/PetstoreClient-Info.plist";
|
INFOPLIST_FILE = "SwaggerClient/SwaggerClient-Info.plist";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = SwaggerClient;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -575,13 +575,13 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "PetstoreClient/PetstoreClient-Prefix.pch";
|
GCC_PREFIX_HEADER = "SwaggerClient/SwaggerClient-Prefix.pch";
|
||||||
INFOPLIST_FILE = "PetstoreClient/PetstoreClient-Info.plist";
|
INFOPLIST_FILE = "SwaggerClient/SwaggerClient-Info.plist";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = SwaggerClient;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
@ -591,24 +591,24 @@
|
|||||||
baseConfigurationReference = E2B6DA00BE52336E23783686 /* Pods.debug.xcconfig */;
|
baseConfigurationReference = E2B6DA00BE52336E23783686 /* Pods.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PetstoreClient.app/PetstoreClient";
|
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SwaggerClient.app/SwaggerClient";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
||||||
);
|
);
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "PetstoreClient/PetstoreClient-Prefix.pch";
|
GCC_PREFIX_HEADER = "SwaggerClient/SwaggerClient-Prefix.pch";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "PetstoreClientTests/PetstoreClientTests-Info.plist";
|
INFOPLIST_FILE = "SwaggerClientTests/SwaggerClientTests-Info.plist";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = SwaggerClientTests;
|
||||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||||
WRAPPER_EXTENSION = xctest;
|
WRAPPER_EXTENSION = xctest;
|
||||||
};
|
};
|
||||||
@ -619,20 +619,20 @@
|
|||||||
baseConfigurationReference = A425648B5C0A4849C7668069 /* Pods.release.xcconfig */;
|
baseConfigurationReference = A425648B5C0A4849C7668069 /* Pods.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PetstoreClient.app/PetstoreClient";
|
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SwaggerClient.app/SwaggerClient";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
||||||
);
|
);
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "PetstoreClient/PetstoreClient-Prefix.pch";
|
GCC_PREFIX_HEADER = "SwaggerClient/SwaggerClient-Prefix.pch";
|
||||||
INFOPLIST_FILE = "PetstoreClientTests/PetstoreClientTests-Info.plist";
|
INFOPLIST_FILE = "SwaggerClientTests/SwaggerClientTests-Info.plist";
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
"/Users/tony/dev/projects/swagger-api/swagger-codegen/samples/client/petstore/objc/Pods/../build/Debug-iphoneos",
|
||||||
);
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = SwaggerClientTests;
|
||||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||||
WRAPPER_EXTENSION = xctest;
|
WRAPPER_EXTENSION = xctest;
|
||||||
};
|
};
|
||||||
@ -641,7 +641,7 @@
|
|||||||
/* End XCBuildConfiguration section */
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
/* Begin XCConfigurationList section */
|
||||||
EA6699911811D2FA00A70D03 /* Build configuration list for PBXProject "PetstoreClient" */ = {
|
EA6699911811D2FA00A70D03 /* Build configuration list for PBXProject "SwaggerClient" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
EA6699C91811D2FB00A70D03 /* Debug */,
|
EA6699C91811D2FB00A70D03 /* Debug */,
|
||||||
@ -650,7 +650,7 @@
|
|||||||
defaultConfigurationIsVisible = 0;
|
defaultConfigurationIsVisible = 0;
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
EA6699CB1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "PetstoreClient" */ = {
|
EA6699CB1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "SwaggerClient" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
EA6699CC1811D2FB00A70D03 /* Debug */,
|
EA6699CC1811D2FB00A70D03 /* Debug */,
|
||||||
@ -659,7 +659,7 @@
|
|||||||
defaultConfigurationIsVisible = 0;
|
defaultConfigurationIsVisible = 0;
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
EA6699CE1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "PetstoreClientTests" */ = {
|
EA6699CE1811D2FB00A70D03 /* Build configuration list for PBXNativeTarget "SwaggerClientTests" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
EA6699CF1811D2FB00A70D03 /* Debug */,
|
EA6699CF1811D2FB00A70D03 /* Debug */,
|
@ -15,9 +15,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
||||||
BuildableName = "PetstoreClient.app"
|
BuildableName = "SwaggerClient.app"
|
||||||
BlueprintName = "PetstoreClient"
|
BlueprintName = "SwaggerClient"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildActionEntry>
|
</BuildActionEntry>
|
||||||
<BuildActionEntry
|
<BuildActionEntry
|
||||||
@ -29,9 +29,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699B91811D2FB00A70D03"
|
BlueprintIdentifier = "EA6699B91811D2FB00A70D03"
|
||||||
BuildableName = "PetstoreClientTests.xctest"
|
BuildableName = "SwaggerClientTests.xctest"
|
||||||
BlueprintName = "PetstoreClientTests"
|
BlueprintName = "SwaggerClientTests"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildActionEntry>
|
</BuildActionEntry>
|
||||||
</BuildActionEntries>
|
</BuildActionEntries>
|
||||||
@ -47,9 +47,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699B91811D2FB00A70D03"
|
BlueprintIdentifier = "EA6699B91811D2FB00A70D03"
|
||||||
BuildableName = "PetstoreClientTests.xctest"
|
BuildableName = "SwaggerClientTests.xctest"
|
||||||
BlueprintName = "PetstoreClientTests"
|
BlueprintName = "SwaggerClientTests"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</TestableReference>
|
</TestableReference>
|
||||||
</Testables>
|
</Testables>
|
||||||
@ -57,9 +57,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
||||||
BuildableName = "PetstoreClient.app"
|
BuildableName = "SwaggerClient.app"
|
||||||
BlueprintName = "PetstoreClient"
|
BlueprintName = "SwaggerClient"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</MacroExpansion>
|
</MacroExpansion>
|
||||||
</TestAction>
|
</TestAction>
|
||||||
@ -77,9 +77,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
||||||
BuildableName = "PetstoreClient.app"
|
BuildableName = "SwaggerClient.app"
|
||||||
BlueprintName = "PetstoreClient"
|
BlueprintName = "SwaggerClient"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildableProductRunnable>
|
</BuildableProductRunnable>
|
||||||
<AdditionalOptions>
|
<AdditionalOptions>
|
||||||
@ -96,9 +96,9 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
BlueprintIdentifier = "EA6699951811D2FA00A70D03"
|
||||||
BuildableName = "PetstoreClient.app"
|
BuildableName = "SwaggerClient.app"
|
||||||
BlueprintName = "PetstoreClient"
|
BlueprintName = "SwaggerClient"
|
||||||
ReferencedContainer = "container:PetstoreClient.xcodeproj">
|
ReferencedContainer = "container:SwaggerClient.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildableProductRunnable>
|
</BuildableProductRunnable>
|
||||||
</ProfileAction>
|
</ProfileAction>
|
@ -4,7 +4,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>SchemeUserState</key>
|
<key>SchemeUserState</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PetstoreClient.xcscheme</key>
|
<key>SwaggerClient.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>4</integer>
|
<integer>4</integer>
|
Before Width: | Height: | Size: 717 KiB After Width: | Height: | Size: 717 KiB |
@ -1,7 +1,7 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "SWGObject.h"
|
#import "SWGObject.h"
|
||||||
#import "SWGCategory.h"
|
|
||||||
#import "SWGTag.h"
|
#import "SWGTag.h"
|
||||||
|
#import "SWGCategory.h"
|
||||||
|
|
||||||
|
|
||||||
@protocol SWGPet
|
@protocol SWGPet
|
||||||
|
@ -544,7 +544,7 @@ static NSString * basePath = @"http://petstore.swagger.io/v2";
|
|||||||
NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]];
|
NSString *requestContentType = [SWGApiClient selectHeaderContentType:@[]];
|
||||||
|
|
||||||
// Authentication setting
|
// Authentication setting
|
||||||
NSArray *authSettings = @[@"petstore_auth", @"api_key"];
|
NSArray *authSettings = @[@"api_key", @"petstore_auth"];
|
||||||
|
|
||||||
id bodyDictionary = nil;
|
id bodyDictionary = nil;
|
||||||
|
|
||||||
|
@ -49,9 +49,9 @@
|
|||||||
<executable>xcodebuild</executable>
|
<executable>xcodebuild</executable>
|
||||||
<arguments>
|
<arguments>
|
||||||
<argument>-workspace</argument>
|
<argument>-workspace</argument>
|
||||||
<argument>PetstoreClient.xcworkspace</argument>
|
<argument>SwaggerClient.xcworkspace</argument>
|
||||||
<argument>-scheme</argument>
|
<argument>-scheme</argument>
|
||||||
<argument>PetstoreClient</argument>
|
<argument>SwaggerClient</argument>
|
||||||
<argument>test</argument>
|
<argument>test</argument>
|
||||||
<argument>-destination</argument>
|
<argument>-destination</argument>
|
||||||
<argument>platform=iOS Simulator,name=iPhone 6,OS=8.3</argument>
|
<argument>platform=iOS Simulator,name=iPhone 6,OS=8.3</argument>
|
||||||
|
@ -198,33 +198,53 @@ sub deserialize
|
|||||||
{
|
{
|
||||||
my ($self, $class, $data) = @_;
|
my ($self, $class, $data) = @_;
|
||||||
$log->debugf("deserializing %s for %s", $data, $class);
|
$log->debugf("deserializing %s for %s", $data, $class);
|
||||||
my $_result;
|
|
||||||
|
|
||||||
if (not defined $data) {
|
if (not defined $data) {
|
||||||
return undef;
|
return undef;
|
||||||
} elsif ( lc(substr($class, 0, 4)) eq 'map[') { #hash
|
} elsif ( (substr($class, 0, 5)) eq 'HASH[') { #hash
|
||||||
$_result = \(json_decode $data);
|
if ($class =~ /^HASH\[(.*),(.*)\]$/) {
|
||||||
} elsif ( lc(substr($class, 0, 6)) eq 'array[' ) { # array of data
|
my ($key_type, $type) = ($1, $2);
|
||||||
|
my %hash;
|
||||||
|
my $decoded_data = decode_json $data;
|
||||||
|
foreach my $key (keys %$decoded_data) {
|
||||||
|
if (ref $decoded_data->{$key} eq 'HASH') {
|
||||||
|
$hash{$key} = $self->deserialize($type, encode_json $decoded_data->{$key});
|
||||||
|
} else {
|
||||||
|
$hash{$key} = $self->deserialize($type, $decoded_data->{$key});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return \%hash;
|
||||||
|
} else {
|
||||||
|
#TODO log error
|
||||||
|
}
|
||||||
|
|
||||||
|
} elsif ( (substr($class, 0, 6)) eq 'ARRAY[' ) { # array of data
|
||||||
return $data if $data eq '[]'; # return if empty array
|
return $data if $data eq '[]'; # return if empty array
|
||||||
|
|
||||||
my $_sub_class = substr($class, 6, -1);
|
my $_sub_class = substr($class, 6, -1);
|
||||||
my @_json_data = json_decode $data;
|
my $_json_data = decode_json $data;
|
||||||
my @_values = ();
|
my @_values = ();
|
||||||
foreach my $_value (@_json_data) {
|
foreach my $_value (@$_json_data) {
|
||||||
push @_values, $self->deserialize($_sub_class, $_value);
|
if (ref $_value eq 'ARRAY') {
|
||||||
|
push @_values, $self->deserialize($_sub_class, encode_json $_value);
|
||||||
|
} else {
|
||||||
|
push @_values, $self->deserialize($_sub_class, $_value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$_result = \@_values;
|
return \@_values;
|
||||||
} elsif ($class eq 'DateTime') {
|
} elsif ($class eq 'DateTime') {
|
||||||
$_result = DateTime->from_epoch(epoch => str2time($data));
|
return DateTime->from_epoch(epoch => str2time($data));
|
||||||
} elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) { #TODO revise the primitive type
|
} elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) {
|
||||||
$_result= $data;
|
return $data;
|
||||||
} else { # model
|
} else { # model
|
||||||
my $_instance = use_module("WWW::SwaggerClient::Object::$class")->new;
|
my $_instance = use_module("WWW::SwaggerClient::Object::$class")->new;
|
||||||
$_result = $_instance->from_hash(decode_json $data);
|
if (ref $data eq "HASH") {
|
||||||
|
return $_instance->from_hash($data);
|
||||||
|
} else { # string, need to json decode first
|
||||||
|
return $_instance->from_hash(decode_json $data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $_result;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# return 'Accept' based on an array of accept provided
|
# return 'Accept' based on an array of accept provided
|
||||||
|
@ -317,7 +317,7 @@ sub new {
|
|||||||
|
|
||||||
|
|
||||||
# authentication setting, if any
|
# authentication setting, if any
|
||||||
my $auth_settings = ['petstore_auth', 'api_key'];
|
my $auth_settings = ['api_key', 'petstore_auth'];
|
||||||
|
|
||||||
# make the API Call
|
# make the API Call
|
||||||
my $response = $self->{api_client}->call_api($_resource_path, $_method,
|
my $response = $self->{api_client}->call_api($_resource_path, $_method,
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
<version>1.2.1</version>
|
<version>1.2.1</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>Test::More</id>
|
<id>Test::More for Pet</id>
|
||||||
<phase>integration-test</phase>
|
<phase>integration-test</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>exec</goal>
|
<goal>exec</goal>
|
||||||
@ -39,6 +39,19 @@
|
|||||||
</arguments>
|
</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>Test::More for Store</id>
|
||||||
|
<phase>integration-test</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<executable>perl</executable>
|
||||||
|
<arguments>
|
||||||
|
<argument>t/02_store_api.t</argument>
|
||||||
|
</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
88
samples/client/petstore/perl/t/02_store_api.t
Normal file
88
samples/client/petstore/perl/t/02_store_api.t
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
use Test::More tests => 22;
|
||||||
|
use Test::Exception;
|
||||||
|
|
||||||
|
use lib 'lib';
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use JSON;
|
||||||
|
|
||||||
|
use_ok('WWW::SwaggerClient::StoreApi');
|
||||||
|
use_ok('WWW::SwaggerClient::ApiClient');
|
||||||
|
use_ok('WWW::SwaggerClient::Object::Pet');
|
||||||
|
use_ok('WWW::SwaggerClient::Object::Tag');
|
||||||
|
use_ok('WWW::SwaggerClient::Object::Category');
|
||||||
|
|
||||||
|
my $api_client = WWW::SwaggerClient::ApiClient->new();
|
||||||
|
my $store_api = WWW::SwaggerClient::StoreApi->new('api_client' => $api_client);
|
||||||
|
|
||||||
|
is $store_api->{api_client}->{base_url}, 'http://petstore.swagger.io/v2', 'get the default base URL from api client';
|
||||||
|
|
||||||
|
my $get_inventory_response = $store_api->get_inventory();
|
||||||
|
|
||||||
|
like ($get_inventory_response->{pending}, qr/^\d+$/, "pending is numeric");
|
||||||
|
like ($get_inventory_response->{sold}, qr/^\d+$/, "sold is numeric");
|
||||||
|
|
||||||
|
my $pet_json = <<JSON;
|
||||||
|
{
|
||||||
|
"pet": {
|
||||||
|
"id": 0,
|
||||||
|
"category": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"name": "doggie",
|
||||||
|
"photoUrls": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "tag string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "available"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
|
||||||
|
is ref(decode_json $pet_json), "HASH", "the decoded json string is a hash";
|
||||||
|
is ref $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}, "WWW::SwaggerClient::Object::Pet", "get Pet object from hash";
|
||||||
|
is $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}->{name}, "doggie", "get the name of the Pet object";
|
||||||
|
is $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}->{category}->{name}, "string", "get the category name of the Pet object";
|
||||||
|
is ref $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}->{category}, "WWW::SwaggerClient::Object::Category", "get the Category the Pet object";
|
||||||
|
is ref $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}->{tags}[0], "WWW::SwaggerClient::Object::Tag", "get the Tag of the Pet object";
|
||||||
|
is $api_client->deserialize("HASH[string,Pet]", $pet_json)->{pet}->{tags}[0]->{name}, "tag string", "get the Tag name of the Pet object";
|
||||||
|
|
||||||
|
my $array_json = <<JSON;
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"category": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"name": "doggie",
|
||||||
|
"photoUrls": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "tag string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "available"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
JSON
|
||||||
|
|
||||||
|
is ref(decode_json $array_json), "ARRAY", "the decoded json string is an array";
|
||||||
|
is ref $api_client->deserialize("ARRAY[Pet]", $array_json)->[0], "WWW::SwaggerClient::Object::Pet", "get Pet object from hash";
|
||||||
|
is $api_client->deserialize("ARRAY[Pet]", $array_json)->[0]->{name}, "doggie", "get the name of the Pet object";
|
||||||
|
is $api_client->deserialize("ARRAY[Pet]", $array_json)->[0]->{category}->{name}, "string", "get the category name of the Pet object";
|
||||||
|
is ref $api_client->deserialize("ARRAY[Pet]", $array_json)->[0]->{category}, "WWW::SwaggerClient::Object::Category", "get the Category the Pet object";
|
||||||
|
is ref $api_client->deserialize("ARRAY[Pet]", $array_json)->[0]->{tags}->[0], "WWW::SwaggerClient::Object::Tag", "get the Tag[0] the Pet object";
|
||||||
|
is $api_client->deserialize("ARRAY[Pet]", $array_json)->[0]->{tags}->[0]->{name}, "tag string", "get the tag name the Pet object";
|
||||||
|
|
||||||
|
|
@ -5,6 +5,7 @@ use lib 'lib';
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use WWW::SwaggerClient::PetApi;
|
use WWW::SwaggerClient::PetApi;
|
||||||
|
use WWW::SwaggerClient::StoreApi;
|
||||||
use WWW::SwaggerClient::ApiClient;
|
use WWW::SwaggerClient::ApiClient;
|
||||||
use WWW::SwaggerClient::Configuration;
|
use WWW::SwaggerClient::Configuration;
|
||||||
use WWW::SwaggerClient::Object::Pet;
|
use WWW::SwaggerClient::Object::Pet;
|
||||||
@ -45,4 +46,30 @@ print "\nget_pet_by_id:".Dumper $api->get_pet_by_id(pet_id => $pet_id);
|
|||||||
print "\nupdate_pet_with_form:".Dumper $api->update_pet_with_form(pet_id => $pet_id, name => 'test_name', status => 'test status');
|
print "\nupdate_pet_with_form:".Dumper $api->update_pet_with_form(pet_id => $pet_id, name => 'test_name', status => 'test status');
|
||||||
print "\ndelete_pet:".Dumper $api->delete_pet(pet_id => $pet_id);
|
print "\ndelete_pet:".Dumper $api->delete_pet(pet_id => $pet_id);
|
||||||
|
|
||||||
|
my $store_api = WWW::SwaggerClient::StoreApi->new();
|
||||||
|
print "\nget_inventory:".Dumper $store_api->get_inventory();
|
||||||
|
|
||||||
|
my $pet_json = <<JSON;
|
||||||
|
{
|
||||||
|
"pet": {
|
||||||
|
"id": 0,
|
||||||
|
"category": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"name": "doggie",
|
||||||
|
"photoUrls": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "tag string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "available"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
|
||||||
|
print "\napi_client->deserialize:".Dumper($api->{api_client}->deserialize("HASH[string,Pet]", $pet_json));
|
||||||
|
@ -25,7 +25,7 @@ class ApiClient {
|
|||||||
public static $PUT = "PUT";
|
public static $PUT = "PUT";
|
||||||
public static $DELETE = "DELETE";
|
public static $DELETE = "DELETE";
|
||||||
|
|
||||||
private static $default_header = array();
|
private $default_header = array();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @var string timeout (second) of the HTTP request, by default set to 0, no timeout
|
* @var string timeout (second) of the HTTP request, by default set to 0, no timeout
|
||||||
@ -58,7 +58,7 @@ class ApiClient {
|
|||||||
if (!is_string($header_name))
|
if (!is_string($header_name))
|
||||||
throw new \InvalidArgumentException('Header name must be a string.');
|
throw new \InvalidArgumentException('Header name must be a string.');
|
||||||
|
|
||||||
self::$default_header[$header_name] = $header_value;
|
$this->default_header[$header_name] = $header_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,7 +67,7 @@ class ApiClient {
|
|||||||
* @return array default header
|
* @return array default header
|
||||||
*/
|
*/
|
||||||
public function getDefaultHeader() {
|
public function getDefaultHeader() {
|
||||||
return self::$default_header;
|
return $this->default_header;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -76,7 +76,7 @@ class ApiClient {
|
|||||||
* @param string $header_name header name (e.g. Token)
|
* @param string $header_name header name (e.g. Token)
|
||||||
*/
|
*/
|
||||||
public function deleteDefaultHeader($header_name) {
|
public function deleteDefaultHeader($header_name) {
|
||||||
unset(self::$default_header[$header_name]);
|
unset($this->default_header[$header_name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -187,7 +187,7 @@ class ApiClient {
|
|||||||
$this->updateParamsForAuth($headerParams, $queryParams, $authSettings);
|
$this->updateParamsForAuth($headerParams, $queryParams, $authSettings);
|
||||||
|
|
||||||
# construct the http header
|
# construct the http header
|
||||||
$headerParams = array_merge((array)self::$default_header, (array)$headerParams);
|
$headerParams = array_merge((array)$this->default_header, (array)$headerParams);
|
||||||
|
|
||||||
foreach ($headerParams as $key => $val) {
|
foreach ($headerParams as $key => $val) {
|
||||||
$headers[] = "$key: $val";
|
$headers[] = "$key: $val";
|
||||||
@ -312,8 +312,8 @@ class ApiClient {
|
|||||||
* @param string $value a string which will be part of the path
|
* @param string $value a string which will be part of the path
|
||||||
* @return string the serialized object
|
* @return string the serialized object
|
||||||
*/
|
*/
|
||||||
public static function toPathValue($value) {
|
public function toPathValue($value) {
|
||||||
return rawurlencode(self::toString($value));
|
return rawurlencode($this->toString($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -324,11 +324,11 @@ class ApiClient {
|
|||||||
* @param object $object an object to be serialized to a string
|
* @param object $object an object to be serialized to a string
|
||||||
* @return string the serialized object
|
* @return string the serialized object
|
||||||
*/
|
*/
|
||||||
public static function toQueryValue($object) {
|
public function toQueryValue($object) {
|
||||||
if (is_array($object)) {
|
if (is_array($object)) {
|
||||||
return implode(',', $object);
|
return implode(',', $object);
|
||||||
} else {
|
} else {
|
||||||
return self::toString($object);
|
return $this->toString($object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,8 +339,8 @@ class ApiClient {
|
|||||||
* @param string $value a string which will be part of the header
|
* @param string $value a string which will be part of the header
|
||||||
* @return string the header string
|
* @return string the header string
|
||||||
*/
|
*/
|
||||||
public static function toHeaderValue($value) {
|
public function toHeaderValue($value) {
|
||||||
return self::toString($value);
|
return $this->toString($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -350,8 +350,8 @@ class ApiClient {
|
|||||||
* @param string $value the value of the form parameter
|
* @param string $value the value of the form parameter
|
||||||
* @return string the form string
|
* @return string the form string
|
||||||
*/
|
*/
|
||||||
public static function toFormValue($value) {
|
public function toFormValue($value) {
|
||||||
return self::toString($value);
|
return $this->toString($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -361,7 +361,7 @@ class ApiClient {
|
|||||||
* @param string $value the value of the parameter
|
* @param string $value the value of the parameter
|
||||||
* @return string the header string
|
* @return string the header string
|
||||||
*/
|
*/
|
||||||
public static function toString($value) {
|
public function toString($value) {
|
||||||
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
||||||
return $value->format(\DateTime::ISO8601);
|
return $value->format(\DateTime::ISO8601);
|
||||||
}
|
}
|
||||||
@ -377,7 +377,7 @@ class ApiClient {
|
|||||||
* @param string $class class name is passed as a string
|
* @param string $class class name is passed as a string
|
||||||
* @return object an instance of $class
|
* @return object an instance of $class
|
||||||
*/
|
*/
|
||||||
public static function deserialize($data, $class)
|
public function deserialize($data, $class)
|
||||||
{
|
{
|
||||||
if (null === $data) {
|
if (null === $data) {
|
||||||
$deserialized = null;
|
$deserialized = null;
|
||||||
@ -388,14 +388,14 @@ class ApiClient {
|
|||||||
$subClass_array = explode(',', $inner, 2);
|
$subClass_array = explode(',', $inner, 2);
|
||||||
$subClass = $subClass_array[1];
|
$subClass = $subClass_array[1];
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$deserialized[$key] = self::deserialize($value, $subClass);
|
$deserialized[$key] = $this->deserialize($value, $subClass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif (strcasecmp(substr($class, 0, 6),'array[') == 0) {
|
} elseif (strcasecmp(substr($class, 0, 6),'array[') == 0) {
|
||||||
$subClass = substr($class, 6, -1);
|
$subClass = substr($class, 6, -1);
|
||||||
$values = array();
|
$values = array();
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$values[] = self::deserialize($value, $subClass);
|
$values[] = $this->deserialize($value, $subClass);
|
||||||
}
|
}
|
||||||
$deserialized = $values;
|
$deserialized = $values;
|
||||||
} elseif ($class == 'DateTime') {
|
} elseif ($class == 'DateTime') {
|
||||||
@ -409,7 +409,7 @@ class ApiClient {
|
|||||||
foreach ($instance::$swaggerTypes as $property => $type) {
|
foreach ($instance::$swaggerTypes as $property => $type) {
|
||||||
$original_property_name = $instance::$attributeMap[$property];
|
$original_property_name = $instance::$attributeMap[$property];
|
||||||
if (isset($original_property_name) && isset($data->$original_property_name)) {
|
if (isset($original_property_name) && isset($data->$original_property_name)) {
|
||||||
$instance->$property = self::deserialize($data->$original_property_name, $type);
|
$instance->$property = $this->deserialize($data->$original_property_name, $type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$deserialized = $instance;
|
$deserialized = $instance;
|
||||||
@ -424,7 +424,7 @@ class ApiClient {
|
|||||||
* @param array[string] $accept Array of header
|
* @param array[string] $accept Array of header
|
||||||
* @return string Accept (e.g. application/json)
|
* @return string Accept (e.g. application/json)
|
||||||
*/
|
*/
|
||||||
public static function selectHeaderAccept($accept) {
|
public function selectHeaderAccept($accept) {
|
||||||
if (count($accept) === 0 or (count($accept) === 1 and $accept[0] === '')) {
|
if (count($accept) === 0 or (count($accept) === 1 and $accept[0] === '')) {
|
||||||
return NULL;
|
return NULL;
|
||||||
} elseif (preg_grep("/application\/json/i", $accept)) {
|
} elseif (preg_grep("/application\/json/i", $accept)) {
|
||||||
@ -440,7 +440,7 @@ class ApiClient {
|
|||||||
* @param array[string] content_type_array Array fo content-type
|
* @param array[string] content_type_array Array fo content-type
|
||||||
* @return string Content-Type (e.g. application/json)
|
* @return string Content-Type (e.g. application/json)
|
||||||
*/
|
*/
|
||||||
public static function selectHeaderContentType($content_type) {
|
public function selectHeaderContentType($content_type) {
|
||||||
if (count($content_type) === 0 or (count($content_type) === 1 and $content_type[0] === '')) {
|
if (count($content_type) === 0 or (count($content_type) === 1 and $content_type[0] === '')) {
|
||||||
return 'application/json';
|
return 'application/json';
|
||||||
} elseif (preg_grep("/application\/json/i", $content_type)) {
|
} elseif (preg_grep("/application\/json/i", $content_type)) {
|
@ -327,7 +327,7 @@ class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// authentication setting, if any
|
// authentication setting, if any
|
||||||
$authSettings = array('petstore_auth', 'api_key');
|
$authSettings = array('api_key', 'petstore_auth');
|
||||||
|
|
||||||
// make the API Call
|
// make the API Call
|
||||||
$response = $this->apiClient->callAPI($resourcePath, $method,
|
$response = $this->apiClient->callAPI($resourcePath, $method,
|
||||||
@ -516,7 +516,7 @@ class PetApi {
|
|||||||
$formParams['additionalMetadata'] = $this->apiClient->toFormValue($additional_metadata);
|
$formParams['additionalMetadata'] = $this->apiClient->toFormValue($additional_metadata);
|
||||||
}// form params
|
}// form params
|
||||||
if ($file !== null) {
|
if ($file !== null) {
|
||||||
$formParams['file'] = '@' . $this->apiClient->toFormValue($file);
|
$formParams['file'] = '@'.$this->apiClient->toFormValue($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,4 +61,12 @@ class Category implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,12 @@ class Order implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,4 +80,12 @@ class Pet implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,4 +61,12 @@ class Tag implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,4 +88,12 @@ class User implements ArrayAccess {
|
|||||||
public function offsetUnset($offset) {
|
public function offsetUnset($offset) {
|
||||||
unset($this->$offset);
|
unset($this->$offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __toString() {
|
||||||
|
if (defined('JSON_PRETTY_PRINT')) {
|
||||||
|
return json_encode($this, JSON_PRETTY_PRINT);
|
||||||
|
} else {
|
||||||
|
return json_encode($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,13 @@ class PetApiTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
// add a new pet (id 10005) to ensure the pet object is available for all the tests
|
// add a new pet (id 10005) to ensure the pet object is available for all the tests
|
||||||
public static function setUpBeforeClass() {
|
public static function setUpBeforeClass() {
|
||||||
|
// for error reporting (need to run with php5.3 to get no warning)
|
||||||
|
//ini_set('display_errors', 1);
|
||||||
|
//error_reporting(~0);
|
||||||
|
ini_set('display_startup_errors',1);
|
||||||
|
ini_set('display_errors',1);
|
||||||
|
error_reporting(-1);
|
||||||
|
|
||||||
// enable debugging
|
// enable debugging
|
||||||
//SwaggerClient\Configuration::$debug = true;
|
//SwaggerClient\Configuration::$debug = true;
|
||||||
|
|
||||||
@ -38,25 +45,26 @@ class PetApiTest extends \PHPUnit_Framework_TestCase
|
|||||||
public function testApiClient()
|
public function testApiClient()
|
||||||
{
|
{
|
||||||
// test selectHeaderAccept
|
// test selectHeaderAccept
|
||||||
$this->assertSame('application/json', SwaggerClient\ApiClient::selectHeaderAccept(array('application/xml','application/json')));
|
$api_client = new SwaggerClient\ApiClient();
|
||||||
$this->assertSame(NULL, SwaggerClient\ApiClient::selectHeaderAccept(array()));
|
$this->assertSame('application/json', $api_client->selectHeaderAccept(array('application/xml','application/json')));
|
||||||
$this->assertSame('application/yaml,application/xml', SwaggerClient\ApiClient::selectHeaderAccept(array('application/yaml','application/xml')));
|
$this->assertSame(NULL, $api_client->selectHeaderAccept(array()));
|
||||||
|
$this->assertSame('application/yaml,application/xml', $api_client->selectHeaderAccept(array('application/yaml','application/xml')));
|
||||||
|
|
||||||
// test selectHeaderContentType
|
// test selectHeaderContentType
|
||||||
$this->assertSame('application/json', SwaggerClient\ApiClient::selectHeaderContentType(array('application/xml','application/json')));
|
$this->assertSame('application/json', $api_client->selectHeaderContentType(array('application/xml','application/json')));
|
||||||
$this->assertSame('application/json', SwaggerClient\ApiClient::selectHeaderContentType(array()));
|
$this->assertSame('application/json', $api_client->selectHeaderContentType(array()));
|
||||||
$this->assertSame('application/yaml,application/xml', SwaggerClient\ApiClient::selectHeaderContentType(array('application/yaml','application/xml')));
|
$this->assertSame('application/yaml,application/xml', $api_client->selectHeaderContentType(array('application/yaml','application/xml')));
|
||||||
|
|
||||||
// test addDefaultHeader and getDefaultHeader
|
// test addDefaultHeader and getDefaultHeader
|
||||||
SwaggerClient\ApiClient::addDefaultHeader('test1', 'value1');
|
$api_client->addDefaultHeader('test1', 'value1');
|
||||||
SwaggerClient\ApiClient::addDefaultHeader('test2', 200);
|
$api_client->addDefaultHeader('test2', 200);
|
||||||
$defaultHeader = SwaggerClient\ApiClient::getDefaultHeader();
|
$defaultHeader = $api_client->getDefaultHeader();
|
||||||
$this->assertSame('value1', $defaultHeader['test1']);
|
$this->assertSame('value1', $defaultHeader['test1']);
|
||||||
$this->assertSame(200, $defaultHeader['test2']);
|
$this->assertSame(200, $defaultHeader['test2']);
|
||||||
|
|
||||||
// test deleteDefaultHeader
|
// test deleteDefaultHeader
|
||||||
SwaggerClient\ApiClient::deleteDefaultHeader('test2');
|
$api_client->deleteDefaultHeader('test2');
|
||||||
$defaultHeader = SwaggerClient\ApiClient::getDefaultHeader();
|
$defaultHeader = $api_client->getDefaultHeader();
|
||||||
$this->assertFalse(isset($defaultHeader['test2']));
|
$this->assertFalse(isset($defaultHeader['test2']));
|
||||||
|
|
||||||
$pet_api = new SwaggerClient\PetAPI();
|
$pet_api = new SwaggerClient\PetAPI();
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('SwaggerClient.php');
|
||||||
|
|
||||||
|
class StoreApiTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
// add a new pet (id 10005) to ensure the pet object is available for all the tests
|
||||||
|
public static function setUpBeforeClass() {
|
||||||
|
// for error reporting (need to run with php5.3 to get no warning)
|
||||||
|
//ini_set('display_errors', 1);
|
||||||
|
//error_reporting(~0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test get inventory
|
||||||
|
public function testGetInventory()
|
||||||
|
{
|
||||||
|
// initialize the API client
|
||||||
|
$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
|
||||||
|
$store_api = new SwaggerClient\StoreAPI($api_client);
|
||||||
|
// get inventory
|
||||||
|
$get_response = $store_api->getInventory();
|
||||||
|
|
||||||
|
$this->assertInternalType("int", $get_response['sold']);
|
||||||
|
$this->assertInternalType("int", $get_response['pending']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('SwaggerClient.php');
|
||||||
|
|
||||||
|
class UserApiTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
// add a new pet (id 10005) to ensure the pet object is available for all the tests
|
||||||
|
public static function setUpBeforeClass() {
|
||||||
|
// for error reporting (need to run with php5.3 to get no warning)
|
||||||
|
//ini_set('display_errors', 1);
|
||||||
|
//error_reporting(~0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test login user
|
||||||
|
public function testLoginUser()
|
||||||
|
{
|
||||||
|
// initialize the API client
|
||||||
|
$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
|
||||||
|
$user_api = new SwaggerClient\UserAPI($api_client);
|
||||||
|
// login
|
||||||
|
$response = $user_api->loginUser("xxxxx", "yyyyyyyy");
|
||||||
|
|
||||||
|
$this->assertInternalType("string", $response);
|
||||||
|
$this->assertRegExp("/^logged in user session/", $response, "response string starts with 'logged in user session'");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
main: Contrib
|
||||||
|
title: php-coveralls
|
||||||
|
internal: yes
|
||||||
|
todo: yes
|
||||||
|
wipeout: yes
|
31
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/build/config/phpcs.xml
vendored
Normal file
31
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/build/config/phpcs.xml
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="PHP">
|
||||||
|
<description>The coding standard for standard PHP application</description>
|
||||||
|
<exclude-pattern>*/img/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/images/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/less/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/css/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*/js/*</exclude-pattern>
|
||||||
|
<exclude-pattern>*.html</exclude-pattern>
|
||||||
|
<exclude-pattern>*.twig</exclude-pattern>
|
||||||
|
<exclude-pattern>*.yml</exclude-pattern>
|
||||||
|
<exclude-pattern>*.xml</exclude-pattern>
|
||||||
|
<exclude-pattern>*.txt</exclude-pattern>
|
||||||
|
<exclude-pattern>*.less</exclude-pattern>
|
||||||
|
<exclude-pattern>*.css</exclude-pattern>
|
||||||
|
<exclude-pattern>*.js</exclude-pattern>
|
||||||
|
<exclude-pattern>*.jpg</exclude-pattern>
|
||||||
|
<exclude-pattern>*.jpeg</exclude-pattern>
|
||||||
|
<exclude-pattern>*.png</exclude-pattern>
|
||||||
|
<exclude-pattern>*.gif</exclude-pattern>
|
||||||
|
|
||||||
|
<!-- Include the whole PSR-2 standard -->
|
||||||
|
<rule ref="PSR2"/>
|
||||||
|
<rule ref="Generic.Files.LineLength">
|
||||||
|
<properties>
|
||||||
|
<property name="lineLimit" value="140"/>
|
||||||
|
<property name="absoluteLineLimit" value="0"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
|
||||||
|
</ruleset>
|
45
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/build/config/phpmd.xml
vendored
Normal file
45
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/build/config/phpmd.xml
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="My first PHPMD rule set"
|
||||||
|
xmlns="http://pmd.sf.net/ruleset/1.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
|
||||||
|
http://pmd.sf.net/ruleset_xml_schema.xsd"
|
||||||
|
xsi:noNamespaceSchemaLocation="
|
||||||
|
http://pmd.sf.net/ruleset_xml_schema.xsd">
|
||||||
|
|
||||||
|
<description>My custom rule set that checks my code...</description>
|
||||||
|
|
||||||
|
<!-- Import the entire unused code rule set -->
|
||||||
|
<rule ref="rulesets/unusedcode.xml" />
|
||||||
|
<rule ref="rulesets/design.xml" />
|
||||||
|
|
||||||
|
<rule ref="rulesets/naming.xml">
|
||||||
|
<exclude name="ShortVariable"/>
|
||||||
|
<exclude name="LongVariable"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="rulesets/naming.xml/ShortVariable">
|
||||||
|
<properties>
|
||||||
|
<property name="minimum" value="2" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="rulesets/naming.xml/LongVariable">
|
||||||
|
<properties>
|
||||||
|
<property name="maximum" value="30" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
|
||||||
|
<rule ref="rulesets/codesize.xml">
|
||||||
|
<exclude name="TooManyMethods"/>
|
||||||
|
<exclude name="ExcessiveClassComplexity"/>
|
||||||
|
</rule>
|
||||||
|
<rule ref="rulesets/codesize.xml/TooManyMethods">
|
||||||
|
<properties>
|
||||||
|
<property name="maxmethods" value="20" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="rulesets/codesize.xml/ExcessiveClassComplexity">
|
||||||
|
<properties>
|
||||||
|
<property name="maximum" value="70" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
0
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/travis/empty
vendored
Normal file
0
samples/client/petstore/php/SwaggerClient/vendor/satooshi/php-coveralls/travis/empty
vendored
Normal file
@ -2,6 +2,10 @@
|
|||||||
//require_once('vendor/autoload.php');
|
//require_once('vendor/autoload.php');
|
||||||
require_once('SwaggerClient-php/SwaggerClient.php');
|
require_once('SwaggerClient-php/SwaggerClient.php');
|
||||||
|
|
||||||
|
// show error reporting
|
||||||
|
//ini_set('display_errors', 1);
|
||||||
|
//error_reporting(~0);
|
||||||
|
|
||||||
// initialize the API client
|
// initialize the API client
|
||||||
//$api_client = new SwaggerClient\ApiClient('http://petstore.swagger.io/v2');
|
//$api_client = new SwaggerClient\ApiClient('http://petstore.swagger.io/v2');
|
||||||
//$api_client->addDefaultHeader("test1", "value1");
|
//$api_client->addDefaultHeader("test1", "value1");
|
||||||
@ -19,10 +23,8 @@ try {
|
|||||||
$pet_api->getApiClient()->addDefaultHeader("TEST_API_KEY", "09182sdkanafndsl903");
|
$pet_api->getApiClient()->addDefaultHeader("TEST_API_KEY", "09182sdkanafndsl903");
|
||||||
// return Pet (model)
|
// return Pet (model)
|
||||||
$response = $pet_api->getPetById($petId);
|
$response = $pet_api->getPetById($petId);
|
||||||
var_dump($response);
|
// to test __toString()
|
||||||
|
print ($response);
|
||||||
// test upload file (exception)
|
|
||||||
$upload_response = $pet_api->uploadFile($petId, "test meta", NULL);
|
|
||||||
|
|
||||||
// add pet (post json)
|
// add pet (post json)
|
||||||
$new_pet_id = 10005;
|
$new_pet_id = 10005;
|
||||||
@ -45,6 +47,9 @@ try {
|
|||||||
// add a new pet (model)
|
// add a new pet (model)
|
||||||
$add_response = $pet_api->addPet($new_pet);
|
$add_response = $pet_api->addPet($new_pet);
|
||||||
|
|
||||||
|
// test upload file (exception)
|
||||||
|
$upload_response = $pet_api->uploadFile($petId, "test meta", NULL);
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
echo 'Caught exception: ', $e->getMessage(), "\n";
|
echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||||
echo 'HTTP response headers: ', $e->getResponseHeaders(), "\n";
|
echo 'HTTP response headers: ', $e->getResponseHeaders(), "\n";
|
||||||
|
@ -9,8 +9,8 @@ from .models.order import Order
|
|||||||
|
|
||||||
# import apis into sdk package
|
# import apis into sdk package
|
||||||
from .apis.user_api import UserApi
|
from .apis.user_api import UserApi
|
||||||
from .apis.store_api import StoreApi
|
|
||||||
from .apis.pet_api import PetApi
|
from .apis.pet_api import PetApi
|
||||||
|
from .apis.store_api import StoreApi
|
||||||
|
|
||||||
# import ApiClient
|
# import ApiClient
|
||||||
from .api_client import ApiClient
|
from .api_client import ApiClient
|
||||||
|
@ -168,13 +168,20 @@ class ApiClient(object):
|
|||||||
sub_class = match.group(1)
|
sub_class = match.group(1)
|
||||||
return [self.deserialize(sub_obj, sub_class) for sub_obj in obj]
|
return [self.deserialize(sub_obj, sub_class) for sub_obj in obj]
|
||||||
|
|
||||||
if obj_class in ['int', 'float', 'dict', 'list', 'str', 'bool', 'datetime']:
|
if 'dict(' in obj_class:
|
||||||
|
match = re.match('dict\((.*), (.*)\)', obj_class)
|
||||||
|
sub_class = match.group(2)
|
||||||
|
return {k: self.deserialize(v, sub_class) for k, v in iteritems(obj)}
|
||||||
|
|
||||||
|
if obj_class in ['int', 'float', 'dict', 'list', 'str', 'bool', 'datetime', "object"]:
|
||||||
obj_class = eval(obj_class)
|
obj_class = eval(obj_class)
|
||||||
else: # not a native type, must be model class
|
else: # not a native type, must be model class
|
||||||
obj_class = eval('models.' + obj_class)
|
obj_class = eval('models.' + obj_class)
|
||||||
|
|
||||||
if obj_class in [int, float, dict, list, str, bool]:
|
if obj_class in [int, float, dict, list, str, bool]:
|
||||||
return obj_class(obj)
|
return obj_class(obj)
|
||||||
|
elif obj_class == object:
|
||||||
|
return object()
|
||||||
elif obj_class == datetime:
|
elif obj_class == datetime:
|
||||||
return self.__parse_string_to_datetime(obj)
|
return self.__parse_string_to_datetime(obj)
|
||||||
|
|
||||||
|
@ -2,6 +2,6 @@ from __future__ import absolute_import
|
|||||||
|
|
||||||
# import apis into api package
|
# import apis into api package
|
||||||
from .user_api import UserApi
|
from .user_api import UserApi
|
||||||
from .store_api import StoreApi
|
|
||||||
from .pet_api import PetApi
|
from .pet_api import PetApi
|
||||||
|
from .store_api import StoreApi
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ class PetApi(object):
|
|||||||
header_params['Content-Type'] = self.api_client.select_header_content_type([])
|
header_params['Content-Type'] = self.api_client.select_header_content_type([])
|
||||||
|
|
||||||
# Authentication setting
|
# Authentication setting
|
||||||
auth_settings = ['petstore_auth', 'api_key']
|
auth_settings = ['api_key', 'petstore_auth']
|
||||||
|
|
||||||
response = self.api_client.call_api(resource_path, method, path_params, query_params, header_params,
|
response = self.api_client.call_api(resource_path, method, path_params, query_params, header_params,
|
||||||
body=body_params, post_params=form_params, files=files,
|
body=body_params, post_params=form_params, files=files,
|
||||||
|
@ -47,7 +47,7 @@ class StoreApi(object):
|
|||||||
Returns a map of status codes to quantities
|
Returns a map of status codes to quantities
|
||||||
|
|
||||||
|
|
||||||
:return: map(String, int)
|
:return: dict(str, int)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
all_params = []
|
all_params = []
|
||||||
@ -86,7 +86,7 @@ class StoreApi(object):
|
|||||||
|
|
||||||
response = self.api_client.call_api(resource_path, method, path_params, query_params, header_params,
|
response = self.api_client.call_api(resource_path, method, path_params, query_params, header_params,
|
||||||
body=body_params, post_params=form_params, files=files,
|
body=body_params, post_params=form_params, files=files,
|
||||||
response='map(String, int)', auth_settings=auth_settings)
|
response='dict(str, int)', auth_settings=auth_settings)
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@ -88,3 +88,46 @@ class ApiClientTests(unittest.TestCase):
|
|||||||
content_types = []
|
content_types = []
|
||||||
content_type = self.api_client.select_header_content_type(content_types)
|
content_type = self.api_client.select_header_content_type(content_types)
|
||||||
self.assertEqual(content_type, 'application/json')
|
self.assertEqual(content_type, 'application/json')
|
||||||
|
|
||||||
|
def test_deserialize_to_dict(self):
|
||||||
|
# dict(str, Pet)
|
||||||
|
json = {
|
||||||
|
'pet': {
|
||||||
|
"id": 0,
|
||||||
|
"category": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"name": "doggie",
|
||||||
|
"photoUrls": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"id": 0,
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "available"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data = self.api_client.deserialize(json, 'dict(str, Pet)')
|
||||||
|
self.assertTrue(isinstance(data, dict))
|
||||||
|
self.assertTrue(isinstance(data['pet'], SwaggerPetstore.Pet))
|
||||||
|
|
||||||
|
# dict(str, int)
|
||||||
|
json = {
|
||||||
|
'integer': 1
|
||||||
|
}
|
||||||
|
|
||||||
|
data = self.api_client.deserialize(json, 'dict(str, int)')
|
||||||
|
self.assertTrue(isinstance(data, dict))
|
||||||
|
self.assertTrue(isinstance(data['integer'], int))
|
||||||
|
|
||||||
|
def test_deserialize_to_object(self):
|
||||||
|
data = self.api_client.deserialize("", "object")
|
||||||
|
self.assertTrue(type(data) == object)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
"""
|
||||||
|
Run the tests.
|
||||||
|
$ pip install nose (optional)
|
||||||
|
$ cd SwaggerPetstore-python
|
||||||
|
$ nosetests -v
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
import SwaggerPetstore
|
||||||
|
from SwaggerPetstore.rest import ApiException
|
||||||
|
|
||||||
|
|
||||||
|
class StoreApiTests(unittest.TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.store_api = SwaggerPetstore.StoreApi()
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
# sleep 1 sec between two every 2 tests
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
def test_get_inventory(self):
|
||||||
|
data = self.store_api.get_inventory()
|
||||||
|
self.assertIsNotNone(data)
|
||||||
|
self.assertTrue(isinstance(data, dict))
|
||||||
|
self.assertItemsEqual(data.keys(), ['available', 'string', 'sold', 'pending', 'confused', 'active', 'na'])
|
5
samples/client/petstore/silex/SwaggerServer/.htaccess
Normal file
5
samples/client/petstore/silex/SwaggerServer/.htaccess
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
|
||||||
|
</IfModule>
|
10
samples/client/petstore/silex/SwaggerServer/README.md
Normal file
10
samples/client/petstore/silex/SwaggerServer/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Swagger generated server
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the
|
||||||
|
[swagger-spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This
|
||||||
|
is an example of building a PHP server.
|
||||||
|
|
||||||
|
This example uses the [Silex](http://silex.sensiolabs.org/) micro-framework. To see how to make this your own, please take a look at the template here:
|
||||||
|
|
||||||
|
[TEMPLATES](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/silex/)
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"silex/silex": "~1.2"
|
||||||
|
}
|
||||||
|
}
|
184
samples/client/petstore/silex/SwaggerServer/index.php
Normal file
184
samples/client/petstore/silex/SwaggerServer/index.php
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Silex\Application;
|
||||||
|
|
||||||
|
$app = new Silex\Application();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUser as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user/createWithArray', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUsersWithArrayInput as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user/createWithList', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUsersWithListInput as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/login', function(Application $app, Request $request) {
|
||||||
|
$username = $request->get('username'); $password = $request->get('password');
|
||||||
|
|
||||||
|
return new Response('How about implementing loginUser as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/logout', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing logoutUser as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getUserByName as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->PUT('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing updateUser as a PUT method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deleteUser as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->PUT('/pet', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing updatePet as a PUT method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing addPet as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/findByStatus', function(Application $app, Request $request) {
|
||||||
|
$status = $request->get('status');
|
||||||
|
|
||||||
|
return new Response('How about implementing findPetsByStatus as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/findByTags', function(Application $app, Request $request) {
|
||||||
|
$tags = $request->get('tags');
|
||||||
|
|
||||||
|
return new Response('How about implementing findPetsByTags as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getPetById as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
$name = $request->get('name'); $status = $request->get('status');
|
||||||
|
return new Response('How about implementing updatePetWithForm as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deletePet as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet/{petId}/uploadImage', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
$additional_metadata = $request->get('additional_metadata'); $file = $request->get('file');
|
||||||
|
return new Response('How about implementing uploadFile as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/store/inventory', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getInventory as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/store/order', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing placeOrder as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/store/order/{orderId}', function(Application $app, Request $request, $order_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getOrderById as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/store/order/{orderId}', function(Application $app, Request $request, $order_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deleteOrder as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->run();
|
5
samples/client/petstore/silex/silex/.htaccess
Normal file
5
samples/client/petstore/silex/silex/.htaccess
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
|
||||||
|
</IfModule>
|
10
samples/client/petstore/silex/silex/README.md
Normal file
10
samples/client/petstore/silex/silex/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Swagger generated server
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the
|
||||||
|
[swagger-spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This
|
||||||
|
is an example of building a PHP server.
|
||||||
|
|
||||||
|
This example uses the [Silex](http://silex.sensiolabs.org/) micro-framework. To see how to make this your own, please take a look at the template here:
|
||||||
|
|
||||||
|
[TEMPLATES](https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen/src/main/resources/silex/)
|
5
samples/client/petstore/silex/silex/composer.json
Normal file
5
samples/client/petstore/silex/silex/composer.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"silex/silex": "~1.2"
|
||||||
|
}
|
||||||
|
}
|
184
samples/client/petstore/silex/silex/index.php
Normal file
184
samples/client/petstore/silex/silex/index.php
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Silex\Application;
|
||||||
|
|
||||||
|
$app = new Silex\Application();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUser as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user/createWithArray', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUsersWithArrayInput as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/user/createWithList', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing createUsersWithListInput as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/login', function(Application $app, Request $request) {
|
||||||
|
$username = $request->get('username'); $password = $request->get('password');
|
||||||
|
|
||||||
|
return new Response('How about implementing loginUser as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/logout', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing logoutUser as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getUserByName as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->PUT('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing updateUser as a PUT method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/user/{username}', function(Application $app, Request $request, $username) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deleteUser as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->PUT('/pet', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing updatePet as a PUT method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing addPet as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/findByStatus', function(Application $app, Request $request) {
|
||||||
|
$status = $request->get('status');
|
||||||
|
|
||||||
|
return new Response('How about implementing findPetsByStatus as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/findByTags', function(Application $app, Request $request) {
|
||||||
|
$tags = $request->get('tags');
|
||||||
|
|
||||||
|
return new Response('How about implementing findPetsByTags as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getPetById as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
$name = $request->get('name'); $status = $request->get('status');
|
||||||
|
return new Response('How about implementing updatePetWithForm as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/pet/{petId}', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deletePet as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/pet/{petId}/uploadImage', function(Application $app, Request $request, $pet_id) {
|
||||||
|
|
||||||
|
$additional_metadata = $request->get('additional_metadata'); $file = $request->get('file');
|
||||||
|
return new Response('How about implementing uploadFile as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/store/inventory', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getInventory as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->POST('/store/order', function(Application $app, Request $request) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing placeOrder as a POST method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->GET('/store/order/{orderId}', function(Application $app, Request $request, $order_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing getOrderById as a GET method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->DELETE('/store/order/{orderId}', function(Application $app, Request $request, $order_id) {
|
||||||
|
|
||||||
|
|
||||||
|
return new Response('How about implementing deleteOrder as a DELETE method ?');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$app->run();
|
Loading…
x
Reference in New Issue
Block a user