Как создать новый API для веб-интерфейса Zabbix? - PullRequest
0 голосов
/ 25 июня 2019

Я хочу создать новый API для веб-интерфейса Zabbix.

Я создал файл CTestApi.php в

D:\xampp\htdocs\zabbix\include\classes\api\services\CTestApi.php 

и создал функцию

public static function TestApi() {
        return self::getApi('testapi');
}

Я использую почтальон для тестирования API.localhost / zabbix / api_jsonrpc.php с параметром, как показано ниже

{
    "jsonrpc": "2.0",
    "method": "testapi.get",
    "params": {
        "output": "extend"
    },
    "auth": "891692ab3070e64f9d3439278a5bbcb8",
    "id": 1
} 

Результат

{
    "jsonrpc": "2.0",
    "error": {
        "code": -32602,
        "message": "Invalid params.",
        "data": "Incorrect API \"testapi\"."
    },
    "id": 1
}

Я не знаю, почему Неверный API.Пожалуйста, помогите мне, как добавить новые API в интерфейс Zabbix?

Я использую PHP 7, MySQL5, Zabbix 4.0

Большое вам спасибо!BienHV

1 Ответ

1 голос
/ 26 июня 2019

Я нашел решение для этого вопроса.

Шаг 1: Создание класса обслуживания API Пример: \ include \ classes \ api \ services \ CTestApi.php

Step2: Зарегистрировать фабрику службы API в CApiServiceFactory.php Пример: 'testapi' => 'CTestApi'

Step3: объявить функцию для возврата объекта CApiInstance для запрошенногоAPI

Шаг 4: Написать функцию API в CTestApi.php Пример: получить, опубликовать, ... метод

...