[comment]: # translation:outdated

[comment]: # ({6d056871-6d056871})
# 付録1. 参考文献の解説

[comment]: # ({/6d056871-6d056871})

[comment]: # ({6594bdc4-6594bdc4})
### 表記法

[comment]: # ({/6594bdc4-6594bdc4})

[comment]: # ({8fe6ece7-2df08058})
#### データ型

Zabbix APIは、以下のデータ型を入力としてサポートしています。

|型|説明|
|--|--------|
|boolean|ブール値。`true`または`false`のいずれかを受け入れます。|
|flag|渡された値は、`null`と等しくない場合に`true`とみなされ、そうでない場合は`false`とみなされます。|
|integer|整数。|
|float|浮動小数点数。|
|string|テキスト文字列。|
|text|より長いテキスト文字列。|
|timestamp|Unixタイムスタンプ。|
|array|順序付けられた値のシーケンス、つまり単純な配列。|
|object|連想配列。|
|query|返されるデータを定義する値。<br><br>特定のプロパティのみを返すプロパティ名の配列として定義するか、定義済みの値のいずれかとして定義できます。<br>`extend` - すべてのオブジェクトプロパティを返します。<br>`count` - 取得したレコードの数を返します。特定のサブセレクトでのみサポートされます。|

::: noteimportant
Zabbix APIは常に文字列または配列としてのみ値を返します。
:::

[comment]: # ({/8fe6ece7-2df08058})

[comment]: # ({a2c16a18-a2c16a18})
#### プロパティラベル

一部のオブジェクトプロパティには、その動作を説明する短いラベルが付けられています。使用されるラベルは次のとおりです:

-   *読み取り専用* - プロパティの値は自動的に設定され、クライアントによる定義や変更はできません。
-   *定数* - プロパティの値はオブジェクトの作成時に設定できますが、作成後は変更できません。

[comment]: # ({/a2c16a18-a2c16a18})

[comment]: # ({5e99748d-5e99748d})
### 予約ID値"0"

予約ID値"0"は、要素をフィルタリングしたり、参照されているオブジェクトを削除したりするために使用できます。たとえば、ホストから参照されているプロキシを削除するには、proxy\_hostidを0に設定する必要があります("proxy\_hostid": "0")。また、サーバーオプションproxyidsによって監視されるホストをフィルタリングするには、proxyidsを0に設定する必要があります("proxyids": "0")。

[comment]: # ({/5e99748d-5e99748d})

[comment]: # ({f6a07b58-b4e0f5ab})
### "get" メソッドの共通パラメータ

以下のパラメータは、すべての `get` メソッドでサポートされています:

|パラメータ|[Type](#data_types)|説明|
|---------|------|---------------------------------------------------|
|countOutput|boolean|Return the number of records in the result instead of the actual data.|
|editable|boolean|If set to `true` return only objects that the user has write permissions to.<br><br>Default: `false`.|
|excludeSearch|boolean|Return results that do not match the criteria given in the `search` parameter.|
|filter|object|Return only those results that exactly match the given filter.<br><br>Accepts an array, where the keys are property names, and the values are either a single value or an array of values to match against.<br><br>Doesn't work for `text` fields.|
|limit|integer|Limit the number of records returned.|
|output|query|Object properties to be returned.<br><br>Default: `extend`.|
|preservekeys|boolean|Use IDs as keys in the resulting array.|
|search|object|Return results that match the given wildcard search (case-insensitive).<br><br>Accepts an array, where the keys are property names, and the values are strings to search for. If no additional options are given, this will perform a `LIKE "%…%"` search.<br><br>Works only for `string` and `text` fields.|
|searchByAny|boolean|If set to `true` return results that match any of the criteria given in the `filter` or `search` parameter instead of all of them.<br><br>Default: `false`.|
|searchWildcardsEnabled|boolean|If set to `true` enables the use of "\*" as a wildcard character in the `search` parameter.<br><br>Default: `false`.|
|sortfield|string/array|Sort the result by the given properties. Refer to a specific API get method description for a list of properties that can be used for sorting. Macros are not expanded before sorting.<br><br>If no value is specified, data will be returned unsorted.|
|sortorder|string/array|Order of sorting. If an array is passed, each value will be matched to the corresponding property given in the `sortfield` parameter.<br><br>Possible values are:<br>`ASC` - *(default)* ascending;<br>`DESC` - descending.|
|startSearch|boolean|The `search` parameter will compare the beginning of fields, that is, perform a `LIKE "…%"` search instead.<br><br>Ignored if `searchWildcardsEnabled` is set to `true`.|

[comment]: # ({/f6a07b58-b4e0f5ab})

[comment]: # ({b41637d2-b41637d2})
### 例

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({74abb8d6-7a121fac})
#### ユーザー権限のチェック

ユーザーは、名前が"MySQL"または"Linux"で始まるホストに書き込む権限を持っていますか？

リクエスト:

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "countOutput": true,
        "search": {
            "host": ["MySQL", "Linux"]
        },
        "editable": true,
        "startSearch": true,
        "searchByAny": true
    },
    "auth": "766b71ee543230a1182ca5c44d353e36",
    "id": 1
}
```

レスポンス:

```json
{
    "jsonrpc": "2.0",
    "result": "0",
    "id": 1
}
```

::: noteclassic
"result"が"0"の場合は、読み取り/書き込み権限を持つホストが存在しないことを意味します。
:::

[comment]: # ({/74abb8d6-7a121fac})

[comment]: # ({4d566cba-ea3cccd8})
#### 不一致を数える

名前に部分文字列"ubuntu"が含まれていないホストの数を数えます。

リクエスト:

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "countOutput": true,
        "search": {
            "host": "ubuntu"
        },
        "excludeSearch": true
    },
    "auth": "766b71ee543230a1182ca5c44d353e36",
    "id": 1
}
```

レスポンス:

```json
{
    "jsonrpc": "2.0",
    "result": "44",
    "id": 1
}
```

[comment]: # ({/4d566cba-ea3cccd8})

[comment]: # ({661eae9b-e911c08b})
#### ワイルドカードを使用したホストの検索

名前に"server"という単語が含まれ、インターフェース ポートが"10050"または"10071"であるホストを検索します。
結果をホスト名で降順に並べ替え、5つに限定します。

リクエスト:

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host"],
        "selectInterfaces": ["port"],
        "filter": {
            "port": ["10050", "10071"]
        },
        "search": {
            "host": "*server*"
        },
        "searchWildcardsEnabled": true,
        "searchByAny": true,
        "sortfield": "host",
        "sortorder": "DESC",
        "limit": 5
    },
    "auth": "766b71ee543230a1182ca5c44d353e36",
    "id": 1
}
```

レスポンス:

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "50003",
            "host": "WebServer-Tomcat02",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "50005",
            "host": "WebServer-Tomcat01",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "50004",
            "host": "WebServer-Nginx",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        {
            "hostid": "99032",
            "host": "MySQL server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        },
        {
            "hostid": "99061",
            "host": "Linux server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        }
    ],
    "id": 1
}
```

[comment]: # ({/661eae9b-e911c08b})

[comment]: # ({79ca9dde-8ce6f554})
#### "preservekeys"を含むワイルドカードを使用したホストの検索

前のリクエストにパラメーター"preservekeys"を追加すると、結果はオブジェクトのIDをキーとする連想配列として返されます。

リクエスト:

```json
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host"],
        "selectInterfaces": ["port"],
        "filter": {
            "port": ["10050", "10071"]
        },
        "search": {
            "host": "*server*"
        },
        "searchWildcardsEnabled": true,
        "searchByAny": true,
        "sortfield": "host",
        "sortorder": "DESC",
        "limit": 5,
        "preservekeys": true
    },
    "auth": "766b71ee543230a1182ca5c44d353e36",
    "id": 1
}
```

レスポンス:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "50003": {
            "hostid": "50003",
            "host": "WebServer-Tomcat02",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        "50005": {
            "hostid": "50005",
            "host": "WebServer-Tomcat01",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },        
        "50004": {
            "hostid": "50004",
            "host": "WebServer-Nginx",
            "interfaces": [
                {
                    "port": "10071"
                }
            ]
        },
        "99032": {
            "hostid": "99032",
            "host": "MySQL server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        },
        "99061": {
            "hostid": "99061",
            "host": "Linux server 01",
            "interfaces": [
                {
                    "port": "10050"
                }
            ]
        }
    },
    "id": 1
}
```

[comment]: # ({/79ca9dde-8ce6f554})
