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
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 with
cloudkitty.utils.validation.get_string_type
in python2.
param_type – Type of the query parameter
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,
the SingleQueryParam
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
location (str) – Location of the args. Must be one of [‘body’, ‘query’]
schema (dict) – Schema to apply to the method’s kwargs
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 {}
schema (dict) – Schema to apply to the method’s output
Registers a new Blueprint containing one or several resources to app.
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
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):
# [...]
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.