Используя пакет Elm html, вы можете сделать http-запросы:
https://api.github.com/users/nytimes/repos
Это все Нью-Йорк Таймс на Github. В основном есть два элемента, которые я хочу получить от ответа Github: id и имя
[ { "id": 5803599, "name": "backbone.stickit" , ... },
{ "id": 21172032, "name": "collectd-rabbitmq" , ... },
{ "id": 698445, "name": "document-viewer" , ... }, ... ]
Тип Elm для Http.get
требует объекта Json Decoder
> Http.get
<function> : Json.Decode.Decoder a -> String -> Task.Task Http.Error a
Я еще не знаю, как открыть списки. Поэтому я поместил декодер Json.Decode.string
и, по крайней мере, подобрал типы, но я понятия не имел, что делать с объектом task
.
> tsk = Http.get (Json.Decode.list Json.Decode.string) url
{ tag = "AndThen", task = { tag = "Catch", task = { tag = "Async", asyncFunction = <function> }, callback = <function> }, callback = <function> }
: Task.Task Http.Error (List String)
> Task.toResult tsk
{ tag = "Catch", task = { tag = "AndThen", task = { tag = "AndThen", task = { tag = "Catch", task = { tag = "Async", asyncFunction = <function> }, callback = <function> }, callback = <function> }, callback = <function> }, callback = <function> }
: Task.Task a (Result.Result Http.Error (List String))
Мне просто нужен объект Elm имен репо, поэтому я могу отображать некоторые элементы div
, но я даже не могу получить данные.
Может ли кто-то медленно пройти меня, как написать декодер и как получить данные с помощью Elm?