From 7147ec558788dcde1c24d4b62e0f4ab676b633e5 Mon Sep 17 00:00:00 2001 From: William Sullivan Date: Sat, 15 Jul 2017 05:55:56 -0400 Subject: [PATCH] Use the "title" and "action" properties of the Link object to set the parameter name instead of hard-coding to "data". This is part of a proposed solution to core-api/python-openapi-codec#28 --- openapi_codec/encode.py | 5 +++-- openapi_codec/utils.py | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/openapi_codec/encode.py b/openapi_codec/encode.py index 13b3ef4..1dcb3b6 100644 --- a/openapi_codec/encode.py +++ b/openapi_codec/encode.py @@ -1,7 +1,7 @@ import coreschema from collections import OrderedDict from coreapi.compat import urlparse -from openapi_codec.utils import get_method, get_encoding, get_location, get_links_from_document +from openapi_codec.utils import get_method, get_encoding, get_location, get_links_from_document, get_parameter_name def generate_swagger_object(document): @@ -193,8 +193,9 @@ def _get_parameters(link, encoding): parameters.append(parameter) if properties: + parameter_name = get_parameter_name(link) parameter = { - 'name': 'data', + 'name': parameter_name, 'in': 'body', 'schema': { 'type': 'object', diff --git a/openapi_codec/utils.py b/openapi_codec/utils.py index 9689124..91b3bbe 100644 --- a/openapi_codec/utils.py +++ b/openapi_codec/utils.py @@ -30,6 +30,10 @@ def get_method(link): return method +def get_parameter_name(link): + return link.title.title() + link.action.title() + "Params" + + def get_encoding(link): encoding = link.encoding has_body = any([get_location(link, field) in ('form', 'body') for field in link.fields])