在 Elm 0.18 中解析 http 响应
Parsing http responses in Elm 0.18
我正在 Elm 0.18 前端解析来自我的服务器 (Phoenix 1.3) 的 http 响应。
响应如下所示:
error: BadStatus { status = { code = 422, message = "Unprocessable Entity" }, headers = Dict.fromList [("cache-control","max-age=0, private, must-revalidate"),("content-type","application/json; charset=utf-8")], url = "http://localhost:4000/api/v1/sessions", body = "{\"error\":\"No user could be found\"}" }
我想将三位数的 HTTP 代码提取为字符串....在本例中为“422”。
在 Elm 中解析它的最佳方法是什么?我正在使用一种非常 hacky 的方法,我想知道什么工具最适用于此。
errorCode : String -> String
errorCode =
error
|> Debug.log "error"
|> toString
|> String.split "code = "
|> List.drop 1
|> String.join ""
|> String.split ","
|> List.take 1
|> String.join ""
|> Debug.log "Error"
您似乎有 elm-lang/http
包中的 Error
。你引用的字符串正是 Error
s 在控制台/调试器中呈现为字符串的方式,我相信——我不认为有任何解析要做,因此。
换句话说,我认为你想要的功能根本不会在 String
s 上运行:
errorCode : Error -> Maybe String
errorCode err =
case err of
BadStatus response ->
Just response.status.code
_ ->
Nothing
(elm 编译器当然应该告诉你你的 String -> String
或我的 Error -> Maybe String
签名是否正确。)
我正在 Elm 0.18 前端解析来自我的服务器 (Phoenix 1.3) 的 http 响应。
响应如下所示:
error: BadStatus { status = { code = 422, message = "Unprocessable Entity" }, headers = Dict.fromList [("cache-control","max-age=0, private, must-revalidate"),("content-type","application/json; charset=utf-8")], url = "http://localhost:4000/api/v1/sessions", body = "{\"error\":\"No user could be found\"}" }
我想将三位数的 HTTP 代码提取为字符串....在本例中为“422”。
在 Elm 中解析它的最佳方法是什么?我正在使用一种非常 hacky 的方法,我想知道什么工具最适用于此。
errorCode : String -> String
errorCode =
error
|> Debug.log "error"
|> toString
|> String.split "code = "
|> List.drop 1
|> String.join ""
|> String.split ","
|> List.take 1
|> String.join ""
|> Debug.log "Error"
您似乎有 elm-lang/http
包中的 Error
。你引用的字符串正是 Error
s 在控制台/调试器中呈现为字符串的方式,我相信——我不认为有任何解析要做,因此。
换句话说,我认为你想要的功能根本不会在 String
s 上运行:
errorCode : Error -> Maybe String
errorCode err =
case err of
BadStatus response ->
Just response.status.code
_ ->
Nothing
(elm 编译器当然应该告诉你你的 String -> String
或我的 Error -> Maybe String
签名是否正确。)