add todo for oauth, support multiple api key

This commit is contained in:
wing328 2015-05-20 17:13:01 +08:00
parent 278a653154
commit 06c7a6a109
7 changed files with 96 additions and 4 deletions

View File

@ -84,6 +84,7 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig {
typeMapping.put("list", "array");
supportingFiles.add(new SupportingFile("composer.mustache", packagePath, "composer.json"));
supportingFiles.add(new SupportingFile("configuration.mustache", packagePath + "/lib", "Configuration.php"));
supportingFiles.add(new SupportingFile("APIClient.mustache", packagePath + "/lib", "APIClient.php"));
supportingFiles.add(new SupportingFile("APIClientException.mustache", packagePath + "/lib", "APIClientException.php"));
supportingFiles.add(new SupportingFile("require.mustache", packagePath, invokerPackage + ".php"));

View File

@ -68,6 +68,8 @@ class APIClient {
}
/**
* update hearder and query param based on authentication setting
*
* @param array $headerParams
* @param array $queryParams
* @param array $authSettings
@ -83,7 +85,8 @@ class APIClient {
switch($auth) {
{{#authMethods}}
case '{{name}}':
{{#isApiKey}}{{#isKeyInHeader}}$headerParams['{{keyParamName}}'] = Configuration::$api_key;{{/isKeyInHeader}}{{#isKeyInQuery}}$queryParams['{{keyParamName}}'] = Configuration::$api_key;{{/isKeyInQuery}}{{#isBasic}}$headerParams['Authorization'] = base64_encode(Configuraiton::$username.":"Configuration::$password){{/isBasic}}{{/isApiKey}}
{{#isApiKey}}{{#isKeyInHeader}}$headerParams['{{keyParamName}}'] = Configuration::$apiKey['{{keyParamName}}'];{{/isKeyInHeader}}{{#isKeyInQuery}}$queryParams['{{keyParamName}}'] = Configuration::$apiKey['{{keyParamName}}'];{{/isKeyInQuery}}{{#isBasic}}$headerParams['Authorization'] = base64_encode(Configuraiton::$username.":"Configuration::$password){{/isBasic}}{{/isApiKey}}
{{#isOAuth}}#TODO support oauth{{/isOAuth}}
break;
{{/authMethods}}
}

View File

@ -0,0 +1,36 @@
<?php
/**
* Copyright 2015 Reverb Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace {{invokerPackage}};
class Configuration {
public static $PATCH = "PATCH";
public static $POST = "POST";
public static $GET = "GET";
public static $PUT = "PUT";
public static $DELETE = "DELETE";
// authentication setting
public static $apiKey = array();
public static $apiKeyPrefix = array();
public static $username = '';
public static $password = '';
}

View File

@ -429,6 +429,9 @@
"security": [
{
"api_key": []
},
{
"api_secret": []
}
]
}
@ -802,6 +805,11 @@
"name": "api_key",
"in": "header"
},
"api_secret": {
"type": "apiKey",
"name": "api_secret",
"in": "query"
},
"petstore_auth": {
"type": "oauth2",
"authorizationUrl": "http://petstore.swagger.io/api/oauth/dialog",

View File

@ -68,6 +68,8 @@ class APIClient {
}
/**
* update hearder and query param based on authentication setting
*
* @param array $headerParams
* @param array $queryParams
* @param array $authSettings
@ -79,16 +81,22 @@ class APIClient {
// one endpoint can have more than 1 auth settings
foreach($authSettings as $auth) {
// determine which auth scheme to use
// determine which one to use
switch($auth) {
case 'api_key':
$headerParams['api_key'] = Configuration::$api_key;
$headerParams['api_key'] = Configuration::$apiKey['api_key'];
break;
case 'api_secret':
$queryParams['api_secret'] = Configuration::$apiKey['api_secret'];
break;
case 'petstore_auth':
#TODO support oauth
break;
}

View File

@ -0,0 +1,36 @@
<?php
/**
* Copyright 2015 Reverb Technologies, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace SwaggerClient;
class Configuration {
public static $PATCH = "PATCH";
public static $POST = "POST";
public static $GET = "GET";
public static $PUT = "PUT";
public static $DELETE = "DELETE";
// authentication setting
public static $apiKey = array();
public static $apiKeyPrefix = array();
public static $username = '';
public static $password = '';
}

View File

@ -69,7 +69,7 @@ class StoreApi {
}
// authentication setting, if any
$authSettings = array('api_key');
$authSettings = array('api_key', 'api_secret');
// make the API Call
$response = $this->apiClient->callAPI($resourcePath, $method,