Dataframes 端点

POST
/v2/dataframes

将 dataframes 添加到存储后端

将 dataframes 添加到存储后端。

名称

入参

类型

描述

dataframes

body

列表

要添加的 dataframes 列表。

请求示例

在 body 中

{
    "dataframes": [
        {
            "period": {
                "begin": "20190723T122810Z",
                "end": "20190723T132810Z"
            },
            "usage": {
                "metric_one": [
                    {
                        "vol": {
                            "unit": "GiB",
                            "qty": 1.2
                        },
                        "rating": {
                            "price": 0.04
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ],
                "metric_two": [
                    {
                        "vol": {
                            "unit": "MB",
                            "qty": 200.4
                        },
                        "rating": {
                            "price": 0.06
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ]
            }
        },
        {
            "period": {
                "begin": "20190823T122810Z",
                "end": "20190823T132810Z"
            },
            "usage": {
                "metric_one": [
                    {
                        "vol": {
                            "unit": "GiB",
                            "qty": 2.4
                        },
                        "rating": {
                            "price": 0.08
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ],
                "metric_two": [
                    {
                        "vol": {
                            "unit": "MB",
                            "qty": 400.8
                        },
                        "rating": {
                            "price": 0.12
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ]
            }
        }
    ]
}

状态码

成功

代码

原因

204 - No Content

即使没有要返回的内容,请求也已成功。

错误

代码

原因

400 - 请求错误

无效请求。

401 - 未授权

未认证用户。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

没有要返回的内容。

GET
/v2/dataframes

从存储后端获取 dataframes

从存储后端获取 dataframes。

名称

入参

类型

描述

limit (可选)

查询

int

用于分页。要返回的最大结果数。

offset (可选)

查询

int

用于分页。应返回的第一个元素的索引。

begin (可选)

查询

iso8601 时间戳

需要 dataframes 的时段的开始时间。

end (可选)

查询

iso8601 时间戳

需要 dataframes 的时段的结束时间。

filters (可选)

查询

dict

可选过滤器。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

401 - 未授权

未认证用户。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

名称

入参

类型

描述

total

body

int

匹配查询参数的数据点总数。

dataframes

body

列表

匹配查询参数的 dataframes 列表。

响应示例

{
    "total": 3,
    "dataframes": [
        {
            "usage": {
                "metric_one": [
                    {
                        "vol": {
                            "unit": "GiB",
                            "qty": 1.2
                        },
                        "rating": {
                            "price": 0.04
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ],
                "metric_two": [
                    {
                        "vol": {
                            "unit": "GiB",
                            "qty": 1.2
                        },
                        "rating": {
                            "price": 0.04
                        },
                        "groupby": {
                            "group_one": "one",
                            "group_two": "two"
                        },
                        "metadata": {
                            "attr_one": "one",
                            "attr_two": "two"
                        }
                    }
                ]
            },
            "period": {
                "begin": "2019-07-23T12:28:10+00:00",
                "end": "2019-07-23T13:28:10+00:00"
            }
        },
        {
            "usage": {
                "volume.size": [
                    {
                        "vol": {
                            "unit": "GiB",
                            "qty": 1.9
                        },
                        "rating": {
                            "price": 3.8
                        },
                        "groupby": {
                            "project_id": "8ace6f139a1742548e09f1e446bc9737",
                            "user_id": "b28fd3f448c34c17bf70e32886900eed",
                            "id": "be966c6d-78a0-42cf-bab9-e833ed996dee"
                        },
                        "metadata": {
                            "volume_type": ""
                        }
                    }
                ]
            },
            "period": {
                "begin": "2019-08-01T01:00:00+00:00",
                "end": "2019-08-01T02:00:00+00:00"
            }
        }
    ]
}

Scope 状态端点

GET
/v2/scope

获取多个 scope 的状态

返回多个 scope 的状态。

名称

入参

类型

描述

collector (可选)

查询

字符串

按 collector 过滤。

fetcher (可选)

查询

字符串

按 fetcher 过滤。

limit (可选)

查询

int

用于分页。要返回的最大结果数。

offset (可选)

查询

int

用于分页。应返回的第一个元素的索引。

scope_id (可选)

查询

字符串

按 scope 过滤。

scope_key (可选)

查询

字符串

按 scope_key 过滤。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

名称

入参

类型

描述

collector

body

字符串

给定 scope 的 Collector

fetcher

body

字符串

给定 scope 的 Fetcher

state

body

iso8601 时间戳

scope 的状态。此变量表示存储状态元素的最后处理时间戳。它已被弃用,将在未来的版本中删除。替代方案是 last_processed_timestamp

last_processed_timestamp

body

iso8601 时间戳

它表示存储状态元素的最后处理时间戳。

scope_id

body

字符串

范围

scope_key

body

字符串

给定 scope 的 Scope key

active

body

bool

定义是否应处理 scope;True 表示 CloudKitty 必须处理 scope。

响应示例

{
    "results": [
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "7a7e5183264644a7a79530eb56e59941",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-09 10:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "9084fadcbd46481788e0ad7405dcbf12",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-08 03:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "1f41d183fca5490ebda5c63fbaca026a",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-06 22:00:00",
            "active": true
        }
    ]
}
PUT
/v2/scope

重置多个 scope 的状态

重置多个 scope 的状态。

名称

入参

类型

描述

state

body

iso8601 时间戳

scope 的状态。此变量表示存储状态元素的最后处理时间戳。它已被弃用,将在未来的版本中删除。替代方案是 last_processed_timestamp

last_processed_timestamp

body

iso8601 时间戳

它表示存储状态元素的最后处理时间戳。

collector (可选)

body

字符串

按 collector 过滤。

fetcher (可选)

body

字符串

按 fetcher 过滤。

scope_id (可选)

body

字符串

按 scope 过滤。

scope_key (可选)

body

字符串

按 scope_key 过滤。

all_scopes (可选)

body

bool

确认是否重置所有 scope

状态码

成功

代码

原因

202 - Accepted

请求已被接受进行异步处理。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

405 - 方法不允许

请求的 URL 不允许该方法。

PATCH
/v2/scope

Patch 一个 scope

修补/更新 scope。

名称

入参

类型

描述

collector (可选)

查询

字符串

按 collector 过滤。

fetcher (可选)

查询

字符串

按 fetcher 过滤。

limit (可选)

查询

int

用于分页。要返回的最大结果数。

offset (可选)

查询

int

用于分页。应返回的第一个元素的索引。

scope_id (可选)

查询

字符串

按 scope 过滤。

scope_key (可选)

查询

字符串

按 scope_key 过滤。

active (可选)

body

bool

定义是否应处理 scope;True 表示 CloudKitty 必须处理 scope。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

名称

入参

类型

描述

collector

body

字符串

给定 scope 的 Collector

fetcher

body

字符串

给定 scope 的 Fetcher

state

body

iso8601 时间戳

scope 的状态。此变量表示存储状态元素的最后处理时间戳。它已被弃用,将在未来的版本中删除。替代方案是 last_processed_timestamp

scope_id

body

字符串

范围

scope_key

body

字符串

给定 scope 的 Scope key

active

body

bool

定义是否应处理 scope;True 表示 CloudKitty 必须处理 scope。

响应示例

{
    "results": [
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "7a7e5183264644a7a79530eb56e59941",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-09 10:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "9084fadcbd46481788e0ad7405dcbf12",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-08 03:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "1f41d183fca5490ebda5c63fbaca026a",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-06 22:00:00",
            "active": true
        }
    ]
}
POST
/v2/scope

创建一个 scope

创建 scope。

名称

入参

类型

描述

collector (可选)

查询

字符串

按 collector 过滤。

fetcher (可选)

查询

字符串

按 fetcher 过滤。

scope_id (可选)

查询

字符串

按 scope 过滤。

scope_key (可选)

查询

字符串

按 scope_key 过滤。

active (可选)

body

bool

定义是否应处理 scope;True 表示 CloudKitty 必须处理 scope。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

名称

入参

类型

描述

scope_id

body

字符串

范围

scope_key

body

字符串

给定 scope 的 Scope key

fetcher

body

字符串

给定 scope 的 Fetcher

collector

body

字符串

给定 scope 的 Collector

state

body

iso8601 时间戳

scope 的状态。此变量表示存储状态元素的最后处理时间戳。它已被弃用,将在未来的版本中删除。替代方案是 last_processed_timestamp

last_processed_timestamp

body

iso8601 时间戳

它表示存储状态元素的最后处理时间戳。

active

body

bool

定义是否应处理 scope;True 表示 CloudKitty 必须处理 scope。

scope_activation_toggle_date

body

iso8601 时间戳

它表示 scope 激活/停用通过 PATCH API 的最后时间。

响应示例

{
    "results": [
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "7a7e5183264644a7a79530eb56e59941",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-09 10:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "9084fadcbd46481788e0ad7405dcbf12",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-08 03:00:00",
            "active": true
        },
        {
            "collector": "gnocchi",
            "fetcher": "keystone",
            "scope_id": "1f41d183fca5490ebda5c63fbaca026a",
            "scope_key": "project_id",
            "last_processed_timestamp": "2019-05-06 22:00:00",
            "active": true
        }
    ]
}

Summary 端点

GET
/v2/summary

获取评级摘要

获取一个或多个租户的评级摘要。

名称

入参

类型

描述

limit (可选)

查询

int

用于分页。要返回的最大结果数。

offset (可选)

查询

int

用于分页。应返回的第一个元素的索引。

begin (可选)

查询

iso8601 时间戳

时段的开始时间,摘要为此时间段内的。

end (可选)

查询

iso8601 时间戳

时段的结束时间,摘要为此时间段内的。

groupby (可选)

查询

字符串列表

可选属性,用于按这些属性对摘要进行分组。 groupby 元素在 collector YML 设置中定义。因此,可以使用 collector 设置中 CloudKitty 定义的任何 groupby 属性来对结果进行分组。除了这些属性之外,从 CloudKitty 2024.1 版本开始,我们将拥有以下新的 groupby 选项:(i) time:按小时分组数据;(ii) time-d:按一年中的天数分组数据;(iii) time-w:按一年中的周数分组数据;(iv) time-m:按月分组数据;以及 (v) time-y:按年分组数据。如果您在 CloudKitty 中有旧数据,并且希望使用这些分组方法,则需要重新处理所需的时间范围。 groupby 选项 time-dtime-wtime-mtime-y 是以下 groupby 选项的简写:day_of_the_yearweek_of_the_yearmonthyear

filters (可选)

查询

dict

可选过滤器。这些过滤器接受多个查询参数。要使用此选项和多个参数,请在查询字符串中重复多次。例如,要将结果限制为仅两个项目,请将以下内容添加到查询字符串:filters=project_id:<project_id_one>&filters=project_id:<project_id_two>。请记住,此字符串必须进行 URL 转义。因此,它变为 filters=project_id%3A<project_id_one>&filters=project_id%3A<project_id_two>

custom_fields (可选)

查询

字符串列表

可选属性,用于自定义摘要 GET API 响应。使用此参数时,用户可以创建自定义报告。默认行为是列出数量的总和以及价格的总和,该总和投影为 rate 字段。 custom_fields 参数的默认值为 SUM(qty) AS qty, SUM(price) AS rate。用户可以使用 InfluxDB 查询根据自己的意愿自定义此字段。以下语句 "select", "from", "drop", "delete", "create", "alter", "insert", "update" 不允许。例如,如果用户想检索数量字段作为数量的最后一个值,而不是总和(这在生成存储值报告时很有趣),用户可以发送参数 last(qty) AS qty, SUM(price) AS rate。要发现可以使用的所有可能的字段,用户还可以使用 * 作为参数。

目前 功能 适用于 Influx 存储 后端。 它(该功能)取决于存储后端驱动程序以支持它。如果用户尝试在使用其他存储后端时设置此配置,则将被忽略。

response_format (可选)

查询

字符串

可选属性,用于定义响应中使用的对象结构。两种响应都是 JSON 对象。可能的值是 tableobject

默认值为 table 对象结构,其中具有 total 属性,指示响应中的条目总数;results 属性,它是一个列表的列表,嵌套列表包含每个条目的值;以及 columns 属性,该属性描述所有可用列。然后,此列表(columns)中的每个索引对应于 results 列表中的值的元数据。

object 选项的结构使用字典。响应仍然具有 total 属性。但是,在 results 属性中,用户会找到一个对象列表,而不是我们在 table 选项中看到的列表的列表。这有助于处理某些用例。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

响应具有以下默认格式(response_format='table')

{
    "columns": [
        "begin",
        "end",
        "qty",
        "rate",
        "group1",
        "group2",
    ],
    "results": [
        [
            "2019-06-01T00:00:00Z",
            "2019-07-01T00:00:00Z",
            2590.421676635742,
            1295.210838317871,
            "group1",
            "group2",
        ]
    ],
    "total": 4
}

total 是找到的元素的总数。columns 包含 results 的每个元素的列名。这些列是四个强制列(beginendqtyrate)以及结果分组的每个属性。

format 是响应格式。它可以是“table”或“object”。默认响应结构是“table”,如上所示。对象结构使用以下模式。

{
    "results": [
        {"begin": "2019-06-01T00:00:00Z",
         "end": "2019-07-01T00:00:00Z",
         "qty": 2590.421676635742,
         "rate": 1295.210838317871,
         "group1": "group1",
         "group2": "group2",
        },
    ],
    "total": 4
}

注意

也可以按时间分组数据,以获得时间序列。为此,按 time 分组。不会添加额外的列,但您将获得查询时间范围内每个收集周期的一个条目。请参阅下面的示例。

名称

入参

类型

描述

begin

body

iso8601 时间戳

该项目的时段开始时间。

end

body

iso8601 时间戳

该项目的时段结束时间。

qty

body

float

该项目在指定时段内的数量。

rate

body

float

该项目在指定时段内的费率。

响应示例

按 time 和 project_id 分组

curl "http://cloudkitty-api:8889/v2/summary?groupby=time&groupby=project_id&limit=3"
{
  "total": 232,
  "columns": [
    "begin",
    "end",
    "qty",
    "rate",
    "project_id"
  ],
  "results": [
    [
      "2019-10-01T06:00:00+02:00",
      "2019-10-01T07:00:00+02:00",
      3.5533905029296875,
      1.7766952514648438,
      "84631866b2d84db49b29828052bdc287"
    ],
    [
      "2019-10-01T07:00:00+02:00",
      "2019-10-01T08:00:00+02:00",
      3.5533905029296875,
      1.7766952514648438,
      "84631866b2d84db49b29828052bdc287"
    ],
    [
      "2019-10-01T08:00:00+02:00",
      "2019-10-01T09:00:00+02:00",
      3.5533905029296875,
      1.7766952514648438,
      "84631866b2d84db49b29828052bdc287"
    ]
  ]
}
curl "http://cloudkitty-api:8889/v2/summary?filters=project_id%3Afe9c35372db6420089883805b37a34af&groupby=type&groupby=project_id"
{
    "columns": [
        "begin",
        "end",
        "qty",
        "rate",
        "project_id",
        "type"
    ],
    "results": [
        [
            "2019-06-01T00:00:00Z",
            "2019-07-01T00:00:00Z",
            2590.421676635742,
            1295.210838317871,
            "fe9c35372db6420089883805b37a34af",
            "image.size"
        ],
        [
            "2019-06-01T00:00:00Z",
            "2019-07-01T00:00:00Z",
            1354,
            3625,
            "fe9c35372db6420089883805b37a34af",
            "instance"
        ],
        [
            "2019-06-01T00:00:00Z",
            "2019-07-01T00:00:00Z",
            502,
            502,
            "fe9c35372db6420089883805b37a34af",
            "ip.floating"
        ],
        [
            "2019-06-01T00:00:00Z",
            "2019-07-01T00:00:00Z",
            175.9,
            351.8,
            "fe9c35372db6420089883805b37a34af",
            "volume.size"
        ]
    ],
    "total": 4
}

Task 调度端点

CloudKitty 具有一个 task 端点 /v2/task/<type_of_task>,该端点允许操作员调度管理任务,例如重新处理。

当前,可用的唯一任务是重新处理任务,它可以通过以下端点访问。

  • POST /v2/task/reprocesses – 创建重新处理任务。

  • GET /v2/task/reprocesses/<path_scope_id> – 检索重新处理任务。

  • GET /v2/task/reprocesses – 检索所有重新处理任务。

POST
`/v2/task/reprocesses`

创建一个重新处理任务

用于调度重新处理任务的端点。根据 CloudKitty period 配置定义的处理周期,加载执行计划中的任务。

名称

入参

类型

描述

scope_ids

body

字符串

要重新处理的 scope ID。要调度多个 scope,必须用逗号分隔。可以使用关键字 ALL 来调度所有 scope 进行重新处理。

start_reprocess_time

body

iso8601 时间戳

重新处理任务的开始日期。

end_reprocess_time

body

iso8601 时间戳

重新处理任务的结束日期。

reason

body

字符串

重新处理的原因。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

如果成功,我们将返回一个空对象

{}

示例

curl -s -X POST "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}" -H "Content-Type: application/json" -d '{"reason": "Reprocessing test", "scope_ids": "<Some scope ID>", "start_reprocess_time": "2021-06-01 00:00:00+00:00", "end_reprocess_time": "2021-06-01 23:00:00+00:00"}'

可以通过“/v2/scope”API 检索 scope ID,该 API 可用于列出所有 scope 及其状态。

GET
`/v2/task/reprocesses/`

检索一个重新处理任务

用于检索重新处理任务的端点。通过使用此端点,可以检查重新处理任务的进度。

名称

入参

类型

描述

path_scope_id

路径

字符串

要检索的 scope ID。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

如果 scope ID 有效,我们将返回 scope 数据

{"scope_id": "scope ID goes here",
 "reason": "The reason for this reprocessing for this scope",
 "start_reprocess_time": "2021-06-01 00:00:00+00:00",
 "end_reprocess_time": "2021-07-01 00:00:00+00:00",
 "current_reprocess_time": "2021-06-06 00:00:00+00:00"}

示例

curl -s -X GET "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses/<scope ID goes here>" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}"
GET
`/v2/task/reprocesses`

检索所有重新处理任务

用于检索所有重新处理任务的端点。通过使用此端点,可以检索为 scope 计划的所有重新处理任务。

名称

入参

类型

描述

scope_ids (可选)

查询

字符串

要检索重新处理任务的 scope ID。如果未提供,将检索所有 scope 的所有重新处理任务。

order (可选)

查询

字符串

返回重新处理任务的顺序。默认情况下,我们按数据库中的插入顺序降序 (desc) 对重新处理任务进行排序。可能的值是 descasc

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

403 - 禁止

对于已认证的用户,禁止操作。

405 - 方法不允许

请求的 URL 不允许该方法。

响应

如果 scope ID 有效,我们将返回 scope 数据

[{"scope_id": "scope ID goes here",
 "reason": "The reason for this reprocessing for this scope",
 "start_reprocess_time": "2021-06-01 00:00:00+00:00",
 "end_reprocess_time": "2021-07-01 00:00:00+00:00",
 "current_reprocess_time": "2021-06-06 00:00:00+00:00"}]

示例

curl -s -X GET "https://<cloudkitty_server_and_port_here>/v2/task/reprocesses" -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: ${ACCESS_TOKEN_KEYSTONE}"

Rating 模块端点

GET
/v2/rating/modules

获取模块列表

返回加载的所有评级模块的列表。此方法不需要任何参数。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

401 - 未授权

未认证用户。

403 - 禁止

对于已认证的用户,禁止操作。

响应

名称

入参

类型

描述

modules

body

列表

模块列表。

响应示例

 {
   "modules": [
     {
         "module_id": "noop"
         "description": "Dummy test module.",
         "enabled": true,
         "hot-config": false,
         "priority": 1
     },
     {
         "module_id": "hashmap",
         "description": "HashMap rating module.",
         "enabled": false,
         "hot-config": true,
         "priority": 2
     }
   ]
 }
GET
/v2/rating/modules/

获取一个模块

返回一个特定模块的详细信息。此方法不需要任何参数。

状态码

成功

代码

原因

200 - 正常

请求成功。

错误

代码

原因

400 - 请求错误

无效请求。

401 - 未授权

未认证用户。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

响应

名称

入参

类型

描述

module_id

body

字符串

模块的 ID

description

body

字符串

模块的简短描述

enabled

body

bool

布尔值,表示模块是否启用

hot_config

body

bool

布尔值,表示模块是否支持热配置

priority

body

int

相对于其他模块的模块优先级

响应示例

{
  "module_id": "sample_id",
  "description": "Sample extension",
  "enabled": true,
  "hot-config": false,
  "priority": 2
}
PUT
/v2/rating/modules/(module_id)

更新一个模块

名称

入参

类型

描述

enabled (可选)

body

bool

布尔值,表示模块是否启用

priority (可选)

body

int

相对于其他模块的模块优先级

状态码

成功

代码

原因

204 - No Content

即使没有要返回的内容,请求也已成功。

错误

代码

原因

400 - 请求错误

无效请求。

401 - 未授权

未认证用户。

403 - 禁止

对于已认证的用户,禁止操作。

404 - Not Found

未找到。

响应

名称

入参

类型

描述

module_id

body

字符串

模块的 ID

description

body

字符串

模块的简短描述

enabled

body

bool

布尔值,表示模块是否启用

hot_config

body

bool

布尔值,表示模块是否支持热配置

priority

body

int

相对于其他模块的模块优先级