Elm 在浏览器网络中获取失败Http.error显示响应
我正在探索ELM并尝试访问web api。我遵循了这个原则 我能够点击我的服务并得到响应(显示在浏览器网络选项卡中),但故障代码部分正在执行elm更新 实施Elm 在浏览器网络中获取失败Http.error显示响应,elm,Elm,我正在探索ELM并尝试访问web api。我遵循了这个原则 我能够点击我的服务并得到响应(显示在浏览器网络选项卡中),但故障代码部分正在执行elm更新 实施 ---Model type alias Model = { message : String, } model:Model model = { message = "Hello" } --update postRequest : Http.Request postRequest =
---Model
type alias Model =
{
message : String,
}
model:Model
model = {
message = "Hello"
}
--update
postRequest : Http.Request
postRequest =
{ verb = "POST"
, headers =
[("Content-Type", "application/json")
]
, url = "http://xyz/events/list"
, body = Http.string """{ "domainId": 1 }"""
}
getEventList: Cmd Msg
getEventList =
Task.perform Messages.FetchFail Messages.FetchSucceed (Http.fromJson decodeString (Http.send Http.defaultSettings postRequest))
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
Messages.NoOp ->
( model, Cmd.none )
Messages.FetchSucceed xy->
({model| message = "success"},Cmd.none)
Messages.FetchFail _->
({model |message = "fail"} ,Cmd.none)
API响应:
{ "message": "", "data": [
{
"eventId": 104,
"title": "private Events",
"description": "abc",
"businessId": 51,
"businessTitle": "VampireDA_Adda",
"startDate": "2016-07-08"
},
{
"eventId": 107,
"title": "Event weekly Midnight",
"description": "xyz",
"businessId": 44,
"businessTitle": "Spanish Scotch",
"startDate": "2016-07-08"
}] }
如果我有什么错误,请帮助我
以及如何将json解码到模型(用响应json填充模型)?您可能会收到错误,因为解码不起作用。但首先要试着习惯管道
Http.send Http.defaultSettings postRequest
|> Http.fromJson decodeString
|> Task.perform Messages.FetchFail Messages.FetchSucceed
要解码,你需要一张Elm唱片
type alias DataItem =
{ eventId: Int
, title: String
, description : String
, businessId : Int
, businessTitle : String
, startDate: String
}
解码器将看起来像
dataDecoder =
object6 DataItem
("eventId" := int)
("title" := string)
("description" := string)
("businessId" := int)
("businessTitle" := string)
("startDate" := string)
decoder = at ["data"] (list dataDecoder)
解码器需要一点时间来适应,因此我创建了一个网站来帮助您练习: