mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-04 14:40:53 +00:00
Merge pull request #6 from mrjf/master
list serialization to CSV, generic header param handling (for auth_token), cleaner php codegen path
This commit is contained in:
commit
a19a8d7e99
@ -50,13 +50,20 @@ class APIClient {
|
|||||||
|
|
||||||
$headers = array();
|
$headers = array();
|
||||||
$headers[] = "Content-type: application/json";
|
$headers[] = "Content-type: application/json";
|
||||||
$headers[] = "api_key: " . $this->apiKey;
|
|
||||||
|
|
||||||
|
# Allow API key from $headerParams to override default
|
||||||
|
$added_api_key = False;
|
||||||
if ($headerParams != null) {
|
if ($headerParams != null) {
|
||||||
foreach ($headerParams as $key => $val) {
|
foreach ($headerParams as $key => $val) {
|
||||||
$headers[] = "$key: $val";
|
$headers[] = "$key: $val";
|
||||||
|
if ($key == 'api_key') {
|
||||||
|
$added_api_key = True;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (! $added_api_key) {
|
||||||
|
$headers[] = "api_key: " . $this->apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_object($postData) or is_array($postData)) {
|
if (is_object($postData) or is_array($postData)) {
|
||||||
$postData = json_encode($postData);
|
$postData = json_encode($postData);
|
||||||
@ -117,13 +124,17 @@ class APIClient {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize the object to a string of JSON
|
* Take value and turn it into a string suitable for inclusion in
|
||||||
*
|
* the path or the header
|
||||||
* @param object $object an object to be serialized to JSON
|
* @param object $object an object to be serialized to a string
|
||||||
* @return string the serialized JSON
|
* @return string the serialized object
|
||||||
*/
|
*/
|
||||||
public static function serialize($object) {
|
public static function toPathValue($object) {
|
||||||
return json_encode($object);
|
if (is_array($object)) {
|
||||||
|
return implode(',', $object);
|
||||||
|
} else {
|
||||||
|
return $object;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,28 +51,27 @@ $if(!method.responseVoid)$
|
|||||||
\$queryParams = array();
|
\$queryParams = array();
|
||||||
\$headerParams = array();
|
\$headerParams = array();
|
||||||
|
|
||||||
$if(method.authToken)$
|
|
||||||
if(\$authToken == null || strlen(\$authToken) == 0) {
|
|
||||||
throw new Exception('missing authToken');
|
|
||||||
}
|
|
||||||
\$headerParams['auth_token'] = \$authToken;
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
|
|
||||||
$if(!method.inputModel)$
|
$if(!method.inputModel)$
|
||||||
$method.queryParameters:{ argument |
|
$method.queryParameters:{ argument |
|
||||||
\$queryParams['$argument.name$'] = \$$argument.name$;
|
if(\$$argument.name$ != null) {
|
||||||
|
\$queryParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.name$);
|
||||||
|
}
|
||||||
}$
|
}$
|
||||||
$method.pathParameters:{ argument |
|
$method.pathParameters:{ argument |
|
||||||
if(\$$argument.name$ != null) {
|
if(\$$argument.name$ != null) {
|
||||||
\$resourcePath = str_replace("{$argument.name$}", \$$argument.name$, \$resourcePath);
|
\$resourcePath = str_replace("{$argument.name$}", \$$argument.name$, \$resourcePath);
|
||||||
}
|
}
|
||||||
}$
|
}$
|
||||||
|
$method.headerParameters:{ argument |
|
||||||
|
if(\$$argument.name$ != null) {
|
||||||
|
\$headerParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.name$);
|
||||||
|
}
|
||||||
|
}$
|
||||||
$endif$
|
$endif$
|
||||||
$if(method.inputModel)$
|
$if(method.inputModel)$
|
||||||
$method.queryParameters:{ argument |
|
$method.queryParameters:{ argument |
|
||||||
if(\$$argument.inputModelClassArgument$ != null && \$$argument.inputModelClassArgument$->$argument.name$ != null) {
|
if(\$$argument.inputModelClassArgument$ != null && \$$argument.inputModelClassArgument$->$argument.name$ != null) {
|
||||||
\$queryParams["$argument.name$"] = \$$argument.inputModelClassArgument$->$argument.name$;
|
\$queryParams["$argument.name$"] = \$this->apiClient->toPathValue(\$$argument.inputModelClassArgument$->$argument.name$);
|
||||||
}
|
}
|
||||||
}$
|
}$
|
||||||
$method.pathParameters:{ argument |
|
$method.pathParameters:{ argument |
|
||||||
@ -80,7 +79,13 @@ $method.pathParameters:{ argument |
|
|||||||
\$resourcePath = str_replace("{$argument.name$}", \$$argument.inputModelClassArgument$->$argument.name$, \$resourcePath);
|
\$resourcePath = str_replace("{$argument.name$}", \$$argument.inputModelClassArgument$->$argument.name$, \$resourcePath);
|
||||||
}
|
}
|
||||||
}$
|
}$
|
||||||
|
$method.headerParameters:{ argument |
|
||||||
|
if(\$$argument.inputModelClassArgument$ != null && \$$argument.inputModelClassArgument$->$argument.name$ != null) {
|
||||||
|
\$headerParams['$argument.name$'] = \$this->apiClient->toPathValue(\$$argument.inputModelClassArgument$->$argument.name$);
|
||||||
|
}
|
||||||
|
}$
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
//make the API Call
|
//make the API Call
|
||||||
$if(method.postObject)$
|
$if(method.postObject)$
|
||||||
\$response = \$this->apiClient->callAPI(\$resourcePath, \$method, \$queryParams, \$postData, \$headerParams);
|
\$response = \$this->apiClient->callAPI(\$resourcePath, \$method, \$queryParams, \$postData, \$headerParams);
|
||||||
|
@ -71,14 +71,17 @@ class APIClient:
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def serialize(self, obj):
|
def toPathValue(self, obj):
|
||||||
"""
|
"""Serialize a list to a CSV string, if necessary.
|
||||||
Args:
|
Args:
|
||||||
obj -- data object to be serialized
|
obj -- data object to be serialized
|
||||||
Returns:
|
Returns:
|
||||||
string -- json serialization of object
|
string -- json serialization of object
|
||||||
"""
|
"""
|
||||||
return json.dumps(obj)
|
if type(obj) == list:
|
||||||
|
return ','.join(obj)
|
||||||
|
else:
|
||||||
|
return obj
|
||||||
|
|
||||||
def deserialize(self, obj, objClass):
|
def deserialize(self, obj, objClass):
|
||||||
"""Derialize a JSON string into an object.
|
"""Derialize a JSON string into an object.
|
||||||
|
@ -51,33 +51,36 @@ $methods:{ method |
|
|||||||
|
|
||||||
queryParams = {}
|
queryParams = {}
|
||||||
headerParams = {}
|
headerParams = {}
|
||||||
$if(method.authToken)$
|
|
||||||
if not authToken:
|
|
||||||
raise Exception('missing authToken')
|
|
||||||
headerParams['auth_token'] = authToken
|
|
||||||
$endif$
|
|
||||||
|
|
||||||
$if(!method.inputModel)$
|
$if(!method.inputModel)$
|
||||||
$method.queryParameters:{ argument |
|
$method.queryParameters:{ argument |
|
||||||
queryParams['$argument.name$'] = $argument.name$
|
queryParams['$argument.name$'] = self.apiClient.toPathValue($argument.name$)
|
||||||
}$
|
}$
|
||||||
|
|
||||||
$method.pathParameters:{ argument |
|
$method.pathParameters:{ argument |
|
||||||
if $argument.name$ != None:
|
if $argument.name$ != None:
|
||||||
resourcePath = resourcePath.replace('{$argument.name$}', $argument.name$)
|
resourcePath = resourcePath.replace('{$argument.name$}', $argument.name$)
|
||||||
|
}$
|
||||||
|
$method.headerParameters:{ argument |
|
||||||
|
if $argument.name$ != None:
|
||||||
|
headerParams['$argument.name$'] = self.apiClient.toPathValue($argument.name$)
|
||||||
}$
|
}$
|
||||||
$endif$
|
$endif$
|
||||||
$if(method.inputModel)$
|
$if(method.inputModel)$
|
||||||
$method.queryParameters:{ argument |
|
$method.queryParameters:{ argument |
|
||||||
if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
|
if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
|
||||||
queryParams['$argument.name$'] = $argument.inputModelClassArgument$.$argument.name$
|
queryParams['$argument.name$'] = self.apiClient.toPathValue($argument.inputModelClassArgument$.$argument.name$)
|
||||||
|
|
||||||
}$
|
}$
|
||||||
$method.pathParameters:{ argument |
|
$method.pathParameters:{ argument |
|
||||||
if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
|
if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
|
||||||
resourcePath = resourcePath.replace('{$argument.name$}', $argument.inputModelClassArgument$.$argument.name$)
|
resourcePath = resourcePath.replace('{$argument.name$}', $argument.inputModelClassArgument$.$argument.name$)
|
||||||
}$
|
}$
|
||||||
|
$method.headerParameters:{ argument |
|
||||||
|
if $argument.inputModelClassArgument$ != None and $argument.inputModelClassArgument$.$argument.name$ != None:
|
||||||
|
headerParams['$argument.name$'] = self.apiClient.toPathValue($argument.inputModelClassArgument$.$argument.name$)
|
||||||
|
}$
|
||||||
|
|
||||||
$endif$
|
$endif$
|
||||||
|
|
||||||
# Make the API Call
|
# Make the API Call
|
||||||
|
@ -30,7 +30,6 @@ import java.io.File;
|
|||||||
* Time: 11:00 PM
|
* Time: 11:00 PM
|
||||||
*/
|
*/
|
||||||
public class PHPLibCodeGen extends LibraryCodeGenerator {
|
public class PHPLibCodeGen extends LibraryCodeGenerator {
|
||||||
String outputBasePath;
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
if(args.length < 1){
|
if(args.length < 1){
|
||||||
@ -50,19 +49,21 @@ public class PHPLibCodeGen extends LibraryCodeGenerator {
|
|||||||
String packageName = args[2];
|
String packageName = args[2];
|
||||||
String libraryHome = args[3];
|
String libraryHome = args[3];
|
||||||
if(libraryHome.endsWith("/")){
|
if(libraryHome.endsWith("/")){
|
||||||
libraryHome = libraryHome.substring(0, libraryHome.length()-1) + packageName;
|
libraryHome = libraryHome.substring(0, libraryHome.length()-1);
|
||||||
}
|
}
|
||||||
String modelPackageName = packageName+".model";
|
String modelPackageName = packageName+".model";
|
||||||
String apiPackageName = packageName+".api";
|
String apiPackageName = packageName+".api";
|
||||||
String classOutputDir = libraryHome + "/src/main/php/" + packageName.replace(".","/");
|
String classOutputDir = libraryHome + packageName.replace(".","/");
|
||||||
PHPLibCodeGen codeGenerator = new PHPLibCodeGen(apiServerURL, apiKey, modelPackageName, apiPackageName, classOutputDir, libraryHome);
|
PHPLibCodeGen codeGenerator = new PHPLibCodeGen(apiServerURL, apiKey, modelPackageName,
|
||||||
|
apiPackageName, classOutputDir, libraryHome);
|
||||||
codeGenerator.generateCode();
|
codeGenerator.generateCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PHPLibCodeGen(String apiServerURL, String apiKey, String modelPackageName, String apiPackageName, String classOutputDir, String libraryHome){
|
public PHPLibCodeGen(String apiServerURL, String apiKey, String modelPackageName, String apiPackageName,
|
||||||
|
String classOutputDir, String libraryHome){
|
||||||
super(apiServerURL, apiKey, modelPackageName, apiPackageName, classOutputDir, libraryHome);
|
super(apiServerURL, apiKey, modelPackageName, apiPackageName, classOutputDir, libraryHome);
|
||||||
this.outputBasePath = classOutputDir;
|
|
||||||
this.setDataTypeMappingProvider(new PHPDataTypeMappingProvider());
|
this.setDataTypeMappingProvider(new PHPDataTypeMappingProvider());
|
||||||
this.setNameGenerator(new CamelCaseNamingPolicyProvider());
|
this.setNameGenerator(new CamelCaseNamingPolicyProvider());
|
||||||
}
|
}
|
||||||
@ -86,8 +87,8 @@ public class PHPLibCodeGen extends LibraryCodeGenerator {
|
|||||||
FileUtil.createOutputDirectories(PHPConfiguration.getResourceClassLocation(), PHPConfiguration.getClassFileExtension());
|
FileUtil.createOutputDirectories(PHPConfiguration.getResourceClassLocation(), PHPConfiguration.getClassFileExtension());
|
||||||
FileUtil.clearFolder(PHPConfiguration.getModelClassLocation());
|
FileUtil.clearFolder(PHPConfiguration.getModelClassLocation());
|
||||||
FileUtil.clearFolder(PHPConfiguration.getResourceClassLocation());
|
FileUtil.clearFolder(PHPConfiguration.getResourceClassLocation());
|
||||||
|
FileUtil.copyDirectory(new File(PHPConfiguration.getStructureLocation()), new File(PHPConfiguration.getResourceClassLocation()));
|
||||||
FileUtil.copyDirectory(new File(PHPConfiguration.getStructureLocation()), new File(PHPConfiguration.getLibraryHome() + "/src/main/php"));
|
|
||||||
return PHPConfiguration;
|
return PHPConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user