liwenjun / elm-zabbix / Zabbix

一个通用的Zabbix-API调用接口,帮助实现扩展Zabbix客户端应用。

数据结构


type alias RpcData a =
WebData (Response a)

基于 http 的 JsonRpc 响应结果


type alias RpcTaskData a =
TaskData (Response a)

Http Task 调用 JsonRpc 响应结果


type Data a

便于处理的返回结果


type alias Param =
{ url : String
, token : Maybe String
, method : String
, params : List ( String
, Json.Encode.Value ) 
}

调用参数

调用方法

call : Param -> Json.Decode.Decoder a -> (RpcData a -> msg) -> Platform.Cmd.Cmd msg

zabbix 调用方法

callTask : Param -> Json.Decode.Decoder a -> TaskData (Response a)

zabbix Task 调用方法

辅助函数

decoder : Json.Decode.Decoder User

用户数据解码器,用于flag加载数据

encode : User -> Json.Encode.Value

用户数据编码器,用于port保存数据

flat : RpcData a -> Data a

将rpc调用的返回结果平面化处理

flatResponse : Response a -> Data a

返回结果平面化处理

toResult : Data a -> Result String a

将平面化处理结果转换为Result

httpErrToString : Http.Error -> String

Http.Error转换为String

Zabbix API


type alias User =
{ username : String
, password : String 
}

用户定义

defaultUser : User

用户的缺省值

login : { conf : { conf | url : String }, user : { user | username : String, password : String }, toMsg : RpcData String -> msg } -> Platform.Cmd.Cmd msg

登录

loginTask : { conf : { conf | url : String }, user : { user | username : String, password : String } } -> RpcTaskData String

登录 Task调用方法

version : { conf : { conf | url : String }, toMsg : RpcData String -> msg } -> Platform.Cmd.Cmd msg

ZabbixApi 版本

versionTask : { conf : { conf | url : String } } -> RpcTaskData String

ZabbixApi 版本 Task调用方法