liwenjun/elm-jsonrpc/2.0.0

JsonRpc

一个通用的JsonRpc-V2调用接口,帮助实现JsonRpc客户端应用。

数据结构

Http 数据结构

type alias WebData a =
Result Error a

Http 返回数据定义

JsonRpc 数据结构

type Response a
= InnerResult a
| InnerError RpcError

JsonRpc 响应结果

type alias RpcError =
{ code : Int
, message : String
, data : Maybe String
}

JsonRpc 返回错误格式定义

type alias RpcData a =
WebData (Response a)

基于 http 的 JsonRpc 响应结果

用于 Task 调用的 JsonRpc 数据结构

type alias TaskData a =
Task Error a

Http Task 调用返回数据定义

type alias RpcTaskData a =
TaskData (Response a)

基于 http Task 调用 JsonRpc 返回结果

便于用户使用的 JsonRpc 数据结构

type Data a
= RpcResult a
| RpcErr RpcError
| HttpErr Error

便于处理的返回结果

JsonRpc 调用参数结构

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

调用参数

Cmd 方式调用

call : Param -> Decoder a -> (RpcData a -> msg) -> Cmd msg

HTTP 调用方法

Task 方式调用

callTask : Param -> Decoder a -> RpcTaskData a

HTTP Task调用方法

辅助函数

返回结果平面化处理

flat : RpcData a -> Data a

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

toResult : Data a -> Result String a

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

handleJsonResponse : Decoder a -> Response String -> WebData a
httpErrToString : Error -> String

Http.Error转换为String

errorToString : RpcError -> String