3.2. JSON 响应格式


以 JSON 格式调用 API 返回结果。API 调用返回单一选项响应或响应集合的结果。

单个对象的 JSON 响应格式

您可以使用单对象 JSON 响应来处理单个对象。对单个对象的 API 请求需要对象的唯一标识符 :id

这是 Satellite 域的单对象请求格式的示例,ID 为 23:

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/domains/23 | python3 -m json.tool

响应示例:

{
    "id": 23,
    "name": "qa.lab.example.com",
    "fullname": "QA",
    "dns_id": 10,
    "created_at": "2024-08-13T09:02:31Z",
    "updated_at": "2024-08-13T09:02:31Z"
}

集合的 JSON 响应格式

集合是对象列表,如主机和域。集合 JSON 响应的格式由 metadata 字段和 results 部分组成。

这是 Satellite 域列表集合请求的格式示例:

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/domains | python3 -m json.tool

响应示例:

{
    "total": 3,
    "subtotal": 3,
    "page": 1,
    "per_page": 20,
    "search": null,
    "sort": {
        "by": null,
        "order": null
    },
    "results": [
        {
            "id": 23,
            "name": "qa.lab.example.com",
            "fullname": "QA",
            "dns_id": 10,
            "created_at": "2024-08-13T09:02:31Z",
            "updated_at": "2024-08-13T09:02:31Z"
        },
        {
            "id": 25,
            "name": "dev.lab.example.com",
            "fullname": "DEVEL",
            "dns_id": 8,
            "created_at": "2024-08-13T08:32:48Z",
            "updated_at": "2024-08-14T07:04:03Z"
        },
        {
            "id": 32,
            "name": "hr.lab.example.com",
            "fullname": "HR",
            "dns_id": 8,
            "created_at": "2024-08-16T08:32:48Z",
            "updated_at": "2024-08-16T07:04:03Z"
        }
    ]
}

JSON 响应元数据

API 响应使用以下元数据字段:

  • total - 没有搜索参数的对象总数。
  • Subtotal - 使用给定搜索参数返回的对象数量。如果没有搜索,则 subtotal 等于 total。
  • page - 页面号。
  • per_page - 每个页面返回的最大对象数。
  • Limit - 在集合响应中返回指定数量的对象。
  • offset - 返回集合前跳过的对象数量。
  • search - 基于 scoped_scoped 语法的搜索字符串。
  • 排序

    • 通过 API 对集合进行排序的字段指定。
    • 顺序 -排序顺序,可以是升序的 ASC 或 DESC (降序)。
  • results - 对象集合。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.