[comment]: # translation:outdated

[comment]: # ({6d056871-6d056871})
# Додатак 1. Референтни коментар

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

[comment]: # ({6594bdc4-6594bdc4})
### Нотација

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

[comment]: # ({8c926b1a-2df08058})
#### Типови података

Zabbix API подржава следеће типове података као улаз:

|Type|Description|
|--|--------|
|ID|Јединствени идентификатор који се користи за референцирање на ентитет.|
|boolean|Буловска вредност (било `true` или `false`).|
|flag|Вредност која се сматра `true` ако је прослеђена и није једнака `null`; у супротном, вредност се сматра `false`.|
|integer|Цео број.|
|float|Децимални број у покретном зарезу.|
|string|Текстуални низ.|
|text|Дужи текстуални низ.|
|timestamp|Unix временска ознака.|
|array|Уређени низ вредности (обичан низ).|
|object|Асоцијативни низ.|
|query|Вредност која дефинише податке који ће бити враћени. Вредност се може дефинисати као низ имена својстава (да би се вратиле само одређена својства) или као једна од унапред дефинисаних вредности:<br>`extend` - враћа сва својства објекта;<br>`count` - враћа број преузетих записа, подржаних само одређеним подизборима.|

::: noteimportant
Zabbix API увек враћа вредности као стрингове или
само низове.
:::

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

[comment]: # ({8f68b338-a2c16a18})
#### Понашање својстава

Нека својства објеката су означена кратким ознакама да би описали њихово понашање. Користе се следеће ознаке:

-  *само за читање* - вредност својства се поставља аутоматски и корисник не може да је дефинише или промени, чак ни у неким специфичним условима (нпр., *само за читање* за наслеђене објекте или откривене објекте);
-  *само за писање* - вредност својства се може подесити, али јој се не може приступити након;
-  *константа* - вредност својства се може подесити приликом креирања објекта, али се не може променити после;
-  *подржано* - вредност својства се не мора подесити, али је дозвољено да се подеси у неким специфичним условима
(нпр., *подржано* ако је `type` подешен на "Једноставна провера", "Спољна провера", "SSH agent", "TELNET agent", или "HTTP agent");међутим, имајте на уму да *подржана* својства могу и даље бити подешена на подразумеване вредности без обзира на услове;
-  *обавезно* - потребно је да вредност својства буде подешена за све операције (осим get операција) или у неким специфичним условима (нпр., *обавезно* за операције креирања; *обавезно* ако је `operationtype` подешен на "глобални скрипт" и `opcommand_hst` није подешен).

::: noteclassic
За операције ажурирања својство се сматра "постављеним" када се поставља током операције ажурирања.
:::

Својства која нису означена ознакама су опциона.

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

[comment]: # ({f960f4be-f255da9d})
#### Понашање параметара

Неки од параметара операције су означени кратким ознакама како би описали њихово понашање за операцију. Користе се следеће ознаке:

- *само за читање* - вредност параметра се поставља аутоматски и корисник не може да је дефинише или промени, чак ни у неким специфичним условима
    (нпр. *само за читање* за наслеђене објекте или откривене објекте);
- *само за писање* - вредност параметра се може подесити, али јој се не може приступити након;
- *подржано* - вредност параметра није потребна за подешавање, али је дозвољено да се подеси у неким специфичним условима
    (нпр. *подржано* ако је `operating_mode` прокси објекта подешен на "пасивни прокси");
- *обавезно* - потребно је подесити вредност параметра.

Параметри који нису означени ознакама су опциони.

[comment]: # ({/f960f4be-f255da9d})

[comment]: # ({cf59def4-5e99748d})
### Резервисана вредност ID-ија "0"

Резервисана вредност ID-ијa "0" се може користити за филтрирање
елемената и за уклањање референцираних објеката. На пример, за уклањање референцираног
проксија са домаћина, proxytid треба да буде постављен на 0
("proxyid": "0") или за филтрирање домаћина надгледаних од стране
сервера, опција proxyids треба да буде постављена на 0 ("proxyids":
"0").

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

[comment]: # ({93faa603-b4e0f5ab})
### Заједнички параметри "get" метода

Следећи парамтери су подржани од стране свих `get` метода:

|Parameter|[Type](#data_types)|Description|
|-|-|--------|
|countOutput|boolean|Враћа број записа у резултату уместо стварних података.|
|editable|boolean|Ако је постављено на `true` враћа само објекте за које корисник има дозволе за писање.<br><br>Подразумевано: `false`.|
|excludeSearch|boolean|Враћа резултате који не одговарају критеријумима наведеним у параметру `search`.|
|filter|object|Враћа само оне резултате који се тачно подударају са датим филтером.<br><br>Прихвата објекат, где су кључеви имена својстава (нпр., својства објекта домаћина у `host.get`, својства објекта ставке у `item.get`, итд.), а вредности су или једна вредност или низ вредности за подударање. <br><br>Не подржава својства `text` [тип података](#data-types).<br><br>Имајте на уму да неке методе имају специфичну функционалност за овај параметар, која је описана на страници методе (нпр., параметар `filter` у [host.get](/manual/api/reference/host/get) такође подржава својства интерфејса Домаћина).||
|limit|integer|Ограничива број враћених записа.|
|output|query|Својства објекта која се враћају.<br><br>Подразумевано: `extend`.|
|preservekeys|boolean|Користите ID-ијеве као кључеве у резултујућем низу.|
|search|object|Враћа резултате који се поклапају са датим обрасцем (без обзира на велика и мала слова).<br><br>Прихвата објекат, где су кључеви имена својстава (нпр., својства објекта домаћина у `host.get`, својства објекта ставке у `item.get`, итд.), а вредности низови за претраживање. Ако нису дате додатне опције, извршиће се претрага `LIKE "%…%"`.<br><br>Подржава само својства `string` и `text` [тип података](#data-types).<br><br>мајте на уму да неке методе имају специфичну функционалност за овај параметар, која је описана на страници методе (нпр. параметар `search` у [host.get](/manual/api/reference/host/get) такође подржава својства интерфејса домаћина).|
|searchByAny|boolean|Ако је подешено на `true` враћа резултате који одговарају било ком од критеријума датим у параметру `filter` или `search` уместо свих њих.<br><br>Подразумевано: `false`.|
|searchWildcardsEnabled|boolean|Ако је постављено на `true` омогућава употребу "\*" као џокер знака у параметру `search`.<br><br>Подразумевано: `false`.|
|sortfield|string/array|Сортира резултат према датим својствима. Погледајте опис методе за добијање одређеног API-ја за листу својстава која се могу користити за сортирање. Макрои се не проширују пре сортирања.<br><br>Ако није наведена вредност, подаци ће бити враћени несортирани.|
|sortorder|string/array|Ред сортирања. Ако је низ прослеђен, свака вредност ће се подударати са одговарајућим својством датим у параметру `sortfield`.<br><br>Могуће вредности:<br>`ASC` - *(подразумевано)* растуће;<br>`DESC` - опадајуће.|
|startSearch|boolean|Параметар `search` ће упоређивати почетак поља, то јест, извршиће претрагу `LIKE "…%"`.<br><br>Игнорише се ако је `searchWildcardsEnabled` подешен на `true`.|

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

[comment]: # ({new-4a0aeab6})
### Entity origin flags

Get methods return a `flags` property for entities related to low-level discovery (LLD rule/LLD rule prototype, item/item prototype, etc). This property is useful to denote if the entity has been discovered or not, since editing for discovered entities is limited.

The `flags` property returns a result based on a combination ("+" operation) of these values:

|Value|Description|
|--|--------|
|0|Base entity (item, trigger, graph, host)|
|1|Low-level discovery rule|
|2|Any prototype (item prototype, trigger prototype, LLD rule prototype, etc)|
|4|Discovered entity (discovered item, trigger, graph, host, LLD rule)|

The **combined** value returned by the `flags` property may be:

|Value|Combination of|Description|
|--|--|------|
|**0**|0|Plain entity (item, trigger, graph, host).|
|**2**|2|Entity prototype (item prototype, trigger prototype, etc).|
|**6**|2+4|Discovered item, trigger, graph, host (converted from prototype).|
|**1**|1|Low-level discovery rule.|
|**3**|1+2|Low-level discovery rule prototype.|
|**5**|1+4|Discovered low-level discovery rule (converted from prototype).|
|**7**|1+2+4|Discovered low-level discovery rule prototype.|

[comment]: # ({/new-4a0aeab6})

[comment]: # ({b41637d2-b41637d2})
### Примери

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

[comment]: # ({7f8a25ac-7a121fac})
#### Провера корисничке дозволе

Да ли корисник има дозволу да пише домаћинима, чија имена започињу са
"MySQL" или "Linux"?

[Request](/manual/api#performing-requests):

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

Одговор:

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

::: noteclassic
Нулти резултат значи да нема домаћина са дозволама за
читање/писање.
:::

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

[comment]: # ({b814e950-ea3cccd8})
#### Бројање неслагања

Бројање домаћина, чија имена не садрже подстринг "ubuntu"

[Request](/manual/api#performing-requests):

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

Одговор:

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

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

[comment]: # ({a325f949-e911c08b})
#### Тражења домаћина помоћу џокер знакова

Наћи домаћине, чији назив садржи реч "server" и имају портове интерфејса "10050" или "10071". Сортирајте резултат по називу домаћина у опадајућем редоследу и 
ограничите га до 5 домаћина.

[Request](/manual/api#performing-requests):

```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
    },
    "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]: # ({/a325f949-e911c08b})

[comment]: # ({8c8fa5f6-8ce6f554})
#### Тражење домаћина помоћу џокер знакова са "preservekeys"

Ако додате параметар"preservekeys", претходном захтеву, 
резултат се враћа као асоциативни ред, где су кључеви ID-ијеви 
објеката.

[Request](/manual/api#performing-requests):

```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
    },
    "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]: # ({/8c8fa5f6-8ce6f554})
