Utils 参考

注意

本文档的这一部分是 cloudkitty.api.v2.utils 模块的参考。它是从函数的文档字符串生成的。请在此页面上报告您遇到的任何文档错误

class cloudkitty.api.v2.utils.SingleQueryParam(param_type)[source]

Voluptuous 验证器,用于验证唯一的查询参数。

此验证器检查 URL 查询参数是否只提供一次,验证其类型并直接返回它,而不是返回包含单个元素的列表。

请注意,此验证器内部使用 voluptuous.Coerce,因此不应与 python2 中的 cloudkitty.utils.validation.get_string_type 一起使用。

参数:

param_type – 查询参数的类型

cloudkitty.api.v2.utils.add_input_schema(location, schema)[source]

为方法的输入添加 voluptuous 模式验证

将可以转换为 voluptuous 模式的字典作为参数,并使用此模式验证参数。 “location” 参数用于指定参数的位置。请注意,对于查询参数,Flask 返回一个 MultiDict。因此,每个字典键都将包含一个列表。为了方便与唯一的查询参数交互,可以使用 SingleQueryParam voluptuous 验证器

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

要接受查询参数列表,可以使用 MultiQueryParam

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) – 参数的位置。必须是 [‘body’, ‘query’] 中的一个

  • schema (dict) – 应用于方法 kwargs 的模式

cloudkitty.api.v2.utils.add_output_schema(schema)[source]

为方法的输出添加 voluptuous 模式验证

示例用法

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) – 应用于方法输出的模式

cloudkitty.api.v2.utils.do_init(app, blueprint_name, resources)[source]

将包含一个或多个资源的蓝图注册到 app。

参数:
  • app (flask.Flask) – 应注册蓝图的 Flask 应用

  • blueprint_name (str) – 要创建的蓝图的名称

  • resources (匹配 cloudkitty.api.v2.RESOURCE_SCHEMA 的字典列表) – 要添加到蓝图 Api 的资源

cloudkitty.api.v2.utils.paginated(func)[source]

分页的辅助函数。

将两个参数添加到装饰的函数中:* offset:int >=0。默认为 0。* limit:int >=1。默认为 100。

示例用法

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):
        # [...]