如何为zabbix前端创建新的API?

时间:2019-06-25 09:51:39

标签: zabbix

我想为Zabbix前端创建新的API。

我在

中创建了一个文件CTestApi.php。
    //get values from tab 1 table
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var gcls = s.getRange(6, 10, 4).getValues();

  //write values in tab 2
  var gSheet = ss.getSheetByName('Tracking');
  var gcells = gSheet.getRange(5, 1, 4);
  gcells.setValues(gcls);

我创建了一个函数

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

我正在使用邮递员来测试API。带有以下参数的localhost / zabbix / api_jsonrpc.php

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

结果是

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

我不知道为什么API不正确。请帮我如何向Zabbix前端添加新的API?

我正在使用PHP 7,MySQL5,Zabbix 4.0

非常感谢! BienHV

1 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法。

第1步::创建API服务类 例如:\ include \ classes \ api \ services \ CTestApi.php

第二步:在CApiServiceFactory.php中注册API服务工厂 例如:'testapi'=>'CTestApi'

第3步::声明函数以返回所请求API的CApiInstance对象

第4步:在CTestApi.php中编写API函数 例如:获取,发布,…方法