Utils reference¶
Note
This section of the documentation is a reference of the
cloudkitty.api.v2.utils
module. It is generated from the docstrings
of the functions. Please report any documentation bug you encounter on this
page
-
class
cloudkitty.api.v2.utils.
SingleQueryParam
(param_type)[source]¶ Voluptuous validator allowing to validate unique query parameters.
This validator checks that a URL query parameter is provided only once, verifies its type and returns it directly, instead of returning a list containing a single element.
Note that this validator uses
voluptuous.Coerce
internally and thus should not be used together withcloudkitty.validation_utils.get_string_type
in python2.- Parameters
param_type – Type of the query parameter
-
cloudkitty.api.v2.utils.
add_input_schema
(location, schema)[source]¶ Add a voluptuous schema validation on a method’s input
Takes a dict which can be converted to a voluptuous schema as parameter, and validates the parameters with this schema. The “location” parameter is used to specify the parameters’ location. Note that for query parameters, a
MultiDict
is returned by Flask. Thus, each dict key will contain a list. In order to ease interaction with unique query parameters, theSingleQueryParam
voluptuous validator can be used:from cloudkitty.api.v2 import utils as api_utils @api_utils.add_input_schema('query', { voluptuous.Required('fruit'): api_utils.SingleQueryParam(str), }) def put(self, fruit=None): return fruit
To accept a list of query parameters, a
MultiQueryParam
can be used:from cloudkitty.api.v2 import utils as api_utils @api_utils.add_input_schema('query', { voluptuous.Required('fruit'): api_utils.MultiQueryParam(str), }) def put(self, fruit=[]): for f in fruit: # Do something with the fruit
- Parameters
location (str) – Location of the args. Must be one of [‘body’, ‘query’]
schema (dict) – Schema to apply to the method’s kwargs
-
cloudkitty.api.v2.utils.
paginated
(func)[source]¶ Helper function for pagination.
Adds two parameters to the decorated function: *
offset
: int >=0. Defaults to 0. *limit
: int >=1. Defaults to 100.Example usage:
class Example(base.BaseResource): @api_utils.paginated @api_utils.add_output_schema({ voluptuous.Required( 'message', default='This is an example endpoint', ): validation_utils.get_string_type(), }) def get(self, offset=0, limit=100): # [...]
-
cloudkitty.api.v2.utils.
add_output_schema
(schema)[source]¶ Add a voluptuous schema validation on a method’s output
Example usage:
class Example(base.BaseResource): @api_utils.add_output_schema({ voluptuous.Required( 'message', default='This is an example endpoint', ): validation_utils.get_string_type(), }) def get(self): return {}
- Parameters
schema (dict) – Schema to apply to the method’s output
-
cloudkitty.api.v2.utils.
do_init
(app, blueprint_name, resources)[source]¶ Registers a new Blueprint containing one or several resources to app.
- Parameters
app (flask.Flask) – Flask app in which the Blueprint should be registered
blueprint_name (str) – Name of the blueprint to create
resources (list of dicts matching
cloudkitty.api.v2.RESOURCE_SCHEMA
) – Resources to add to the Blueprint’s Api