From 9322c8fb0eb19208727e269987e16245fa8f9eae Mon Sep 17 00:00:00 2001 From: cbornet Date: Fri, 18 Nov 2016 16:42:57 +0100 Subject: [PATCH] [Flask] fix parameter naming --- .../languages/FlaskConnexionCodegen.java | 18 ++++++++++++++++-- .../controllers/pet_controller.py | 6 +++--- .../test/test_pet_controller.py | 2 +- .../controllers/pet_controller.py | 6 +++--- .../flaskConnexion/test/test_pet_controller.py | 2 +- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java index 28a87ae7f17..3df5b15d70c 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java @@ -10,8 +10,7 @@ import io.swagger.models.HttpMethod; import io.swagger.models.Operation; import io.swagger.models.Path; import io.swagger.models.Swagger; -import io.swagger.models.parameters.BodyParameter; -import io.swagger.models.parameters.FormParameter; +import io.swagger.models.parameters.Parameter; import io.swagger.models.properties.*; import io.swagger.util.Yaml; @@ -317,6 +316,15 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf controllerPackage + "." + toApiFilename(tag) ); } + for (Parameter param: operation.getParameters()) { + // sanitize the param name but don't underscore it since it's used for request mapping + String name = param.getName(); + String paramName = sanitizeName(name); + if (!paramName.equals(name)) { + LOGGER.warn(name + " cannot be used as parameter name with flask-connexion and was sanitized as " + paramName); + } + param.setName(paramName); + } } } } @@ -405,6 +413,12 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf return name; } + @Override + public String toParamName(String name) { + // Param name is already sanitized in swagger spec processing + return name; + } + @Override public String toModelFilename(String name) { name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. diff --git a/samples/server/petstore/flaskConnexion-python2/controllers/pet_controller.py b/samples/server/petstore/flaskConnexion-python2/controllers/pet_controller.py index bd37fffc4f5..0a1be8f8863 100644 --- a/samples/server/petstore/flaskConnexion-python2/controllers/pet_controller.py +++ b/samples/server/petstore/flaskConnexion-python2/controllers/pet_controller.py @@ -21,14 +21,14 @@ def add_pet(body): return 'do some magic!' -def delete_pet(petId, apiKey=None): +def delete_pet(petId, api_key=None): """ Deletes a pet :param petId: Pet id to delete :type petId: int - :param apiKey: - :type apiKey: str + :param api_key: + :type api_key: str :rtype: None """ diff --git a/samples/server/petstore/flaskConnexion-python2/test/test_pet_controller.py b/samples/server/petstore/flaskConnexion-python2/test/test_pet_controller.py index 50f0b523246..31e3b3fcb6b 100644 --- a/samples/server/petstore/flaskConnexion-python2/test/test_pet_controller.py +++ b/samples/server/petstore/flaskConnexion-python2/test/test_pet_controller.py @@ -31,7 +31,7 @@ class TestPetController(BaseTestCase): Deletes a pet """ - headers = [('apiKey', 'apiKey_example')] + headers = [('api_key', 'api_key_example')] response = self.client.open('/v2/pet/{petId}'.format(petId=789), method='DELETE', headers=headers) diff --git a/samples/server/petstore/flaskConnexion/controllers/pet_controller.py b/samples/server/petstore/flaskConnexion/controllers/pet_controller.py index bd37fffc4f5..0a1be8f8863 100644 --- a/samples/server/petstore/flaskConnexion/controllers/pet_controller.py +++ b/samples/server/petstore/flaskConnexion/controllers/pet_controller.py @@ -21,14 +21,14 @@ def add_pet(body): return 'do some magic!' -def delete_pet(petId, apiKey=None): +def delete_pet(petId, api_key=None): """ Deletes a pet :param petId: Pet id to delete :type petId: int - :param apiKey: - :type apiKey: str + :param api_key: + :type api_key: str :rtype: None """ diff --git a/samples/server/petstore/flaskConnexion/test/test_pet_controller.py b/samples/server/petstore/flaskConnexion/test/test_pet_controller.py index 50f0b523246..31e3b3fcb6b 100644 --- a/samples/server/petstore/flaskConnexion/test/test_pet_controller.py +++ b/samples/server/petstore/flaskConnexion/test/test_pet_controller.py @@ -31,7 +31,7 @@ class TestPetController(BaseTestCase): Deletes a pet """ - headers = [('apiKey', 'apiKey_example')] + headers = [('api_key', 'api_key_example')] response = self.client.open('/v2/pet/{petId}'.format(petId=789), method='DELETE', headers=headers)