diff --git a/openapi_codec/encode.py b/openapi_codec/encode.py index a95aaed..b2a6339 100644 --- a/openapi_codec/encode.py +++ b/openapi_codec/encode.py @@ -1,6 +1,8 @@ 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_encoding, get_links_from_document, + get_location, get_method) def generate_swagger_object(document): @@ -108,7 +110,8 @@ def _get_parameters(link, encoding): for field in link.fields: location = get_location(link, field) if location == 'form': - if encoding in ('multipart/form-data', 'application/x-www-form-urlencoded'): + if encoding in ('multipart/form-data', + 'application/x-www-form-urlencoded'): # 'formData' in swagger MUST be one of these media types. parameter = { 'name': field.name, @@ -121,9 +124,7 @@ def _get_parameters(link, encoding): else: # Expand coreapi fields with location='form' into a single swagger # parameter, with a schema containing multiple properties. - schema_property = { - 'description': field.description - } + schema_property = {'description': field.description} properties[field.name] = schema_property if field.required: required.append(field.name) @@ -152,15 +153,19 @@ def _get_parameters(link, encoding): parameters.append(parameter) if properties: - parameters.append({ + parameters_dict = { 'name': 'data', 'in': 'body', 'schema': { 'type': 'object', 'properties': properties, - 'required': required } - }) + } + # Add required fields to the schema just if there are required + # params see https://github.com/core-api/python-openapi-codec/issues/16 + if required: + parameters_dict['schema']['required'] = required + parameters.append(parameters_dict) return parameters pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy