2.2. JSON 応答形式の理解

API への呼び出しは、JSON 形式の結果を返します。API 呼び出しは、単一オプションの応答または、応答コレクションの結果を返します。

単一オブジェクトの JSON 応答形式

単一オブジェクトで作業するには、単一オブジェクトの JSON 応答を使用します。単一のオブジェクトに対する API 要求では、オブジェクトの一位識別子 :id が必要です。

これは、ID が 23 の Satellite ドメインに対する単一オブジェクトの形式例です。

要求例:

$ curl --request GET --insecure --user sat_username:sat_password \
https://satellite.example.com/api/domains/23 | python -m json.tool

応答例:

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

コレクション用の JSON 応答形式

コレクションは、ホストとドメインなどのオブジェクト一覧です。JSON 応答コレクションの形式は、メタデータのフィールドセクションと結果セクションで設定されます。

以下は、Satellite ドメイン一覧のコレクション要求の形式例です。

要求例:

$ curl --request GET --insecure --user sat_username:sat_password \
https://satellite.example.com/api/domains | python -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": "2013-08-13T09:02:31Z",
            "updated_at": "2013-08-13T09:02:31Z"
        },
        {
            "id": 25,
            "name": "sat.lab.example.com",
            "fullname": "SATLAB",
            "dns_id": 8,
            "created_at": "2013-08-13T08:32:48Z",
            "updated_at": "2013-08-14T07:04:03Z"
        },
        {
            "id": 32,
            "name": "hr.lab.example.com",
            "fullname": "HR",
            "dns_id": 8,
            "created_at": "2013-08-16T08:32:48Z",
            "updated_at": "2013-08-16T07:04:03Z"
        }
    ]
}

応答メタデータフィールド

API 応答は、以下のメタデータフィールドを使用します。

  • total: 検索パラメーターなしのオブジェクトの合計数
  • subtotal: 検索パラメーターを指定して返されたオブジェクト数(検索がない場合には、累計は合計と同じになります)。
  • page: ページ数
  • per_page: ページごとに返す最大オブジェクト数
  • limit: コレクションの応答で返すオブジェクトの指定数
  • offset: コレクションを返す前に省略するオブジェクト数
  • search: scoped_scoped 構文をもとにした検索文字列
  • sort

    • by: API がコレクションをソートするフィールド別に指定
    • order: ソート順 (ASC は昇順、DESC は降順)
  • results: オブジェクトのコレクション