This module defines an OpenAPIOperation class, a Connexion operation specific for OpenAPI 3 specs.

Module Contents



A single API operation on a path.



class connexion.operations.openapi.OpenAPIOperation(api, method, path, operation, resolver, path_parameters=None, app_security=None, security_schemes=None, components=None, validate_responses=False, strict_validation=False, randomize_endpoint=None, validator_map=None, pythonic_params=False, uri_parser_class=None)

Bases: connexion.operations.abstract.AbstractOperation

A single API operation on a path.

This class uses the OperationID identify the module and function that will handle the operation

From Swagger Specification:


A friendly name for the operation. The id MUST be unique among all operations described in the API. Tools and libraries MAY use the operation id to uniquely identify an operation.

  • method (str) – HTTP method

  • path (str) –

  • operation (dict) – swagger operation object

  • resolver – Callable that maps operationID to a function

  • path_parameters (list) – Parameters defined in the path level

  • app_security (list) – list of security rules the application uses by default

  • security_schemes (dict) – Security Definitions Object

  • components (dict) – Components Object

  • validate_responses (bool) – True enables validation. Validation errors generate HTTP 500 responses.

  • strict_validation (bool) – True enables validation on invalid request parameters

  • randomize_endpoint (integer) – number of random characters to append to operation name

  • validator_map (dict) – Custom validators for the types “parameter”, “body” and “response”.

  • pythonic_params (bool) – When True CamelCase parameters are converted to snake_case and an underscore is appended to any shadowed built-ins

  • uri_parser_class (AbstractURIParser) – class to use for uri parsing

classmethod from_spec(cls, spec, api, path, method, resolver, *args, **kwargs)
property request_body(self)
property parameters(self)

Returns the parameters for this operation

property consumes(self)

Content-Types that the operation consumes

property produces(self)

Content-Types that the operation produces

with_definitions(self, schema)

Returns the given schema, but with the definitions from the spec attached. This allows any remaining references to be resolved by a validator (for example).

response_schema(self, status_code=None, content_type=None)

response schema for this endpoint

example_response(self, status_code=None, content_type=None)

Returns example response from spec


Returns the types for parameters in the path

body_schema(self, content_type: str = None) dict

The body schema definition for this operation.

body_definition(self, content_type: str = None) dict

The body complete definition for this operation.

There can be one “body” parameter at most.

Return type:


property api(self)
property method(self)

The HTTP method for this operation (ex. GET, POST)

property path(self)

The path of the operation, relative to the API base path

property security(self)
property security_schemes(self)
property responses(self)

Returns the responses for this operation

property validator_map(self)

Validators to use for parameter, body, and response validation

property operation_id(self)

The operation id used to identify the operation internally to the app

property randomize_endpoint(self)

number of random digits to generate and append to the operation_id.

property router_controller(self)

The router controller to use (python module where handler functions live)

property strict_validation(self)

If True, validate all requests against the spec

property pythonic_params(self)

If True, convert CamelCase into pythonic_variable_names

property validate_responses(self)

If True, check the response against the response schema, and return an error if the response does not validate.

get_arguments(self, path_params, query_params, body, files, arguments, has_kwargs, sanitize)

get arguments for handler function

response_definition(self, status_code=None, content_type=None)

response definition for this endpoint


If the endpoint has no ‘produces’ then the default is ‘application/json’.

:rtype str

property function(self)

Operation function with decorators

Return type:


json_loads(self, data)

A wrapper for calling the API specific JSON loader.


data (bytes) – The JSON data in textual form.