Descargando una página web

Elm:
Descargando una página web

How to:

Para descargar una web en Elm, usamos el módulo Http. Aquí hay un ejemplo simple que muestra cómo hacer una petición GET:

import Http
import Json.Decode exposing (string)

type Msg
    = GotText (Result Http.Error String)

getText : Cmd Msg
getText =
    Http.get
        { url = "https://example.com"
        , expect = Http.expectString GotText
        }

-- Código para la inicialización y suscripciones aquí

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        GotText (Ok data) ->
            ( { model | content = data }, Cmd.none )

        GotText (Err _) ->
            ( model, Cmd.none )

-- Resto del modelo, view, y funciones auxiliares

Si ejecutas este código en una aplicación Elm, harás una petición a example.com y manejarás el resultado.

Deep Dive

Elm nació para hacer aplicaciones web confiables. Con Elm, evitas errores en tiempo de ejecución usando un sistema de tipos fuerte.

Para bajar páginas web, Elm proporciona el módulo Http. Es funcional y usa Commands para efectuar operaciones de lado, como peticiones HTTP, que no encajan en Elm’s mundo puramente funcional.

Hay alternativas como XmlHttpRequest en JavaScript, pero Elm maneja efectos de lado de una manera más segura y predecible.

Detalles de implementación: Elm usa comandos (Cmd) para peticiones asíncronas, que retornan mensajes (Msg) que tu programa maneja. Necesitas decodificadores (Decoder) para manejar el contenido de la respuesta ya que Elm es fuertemente tipado.

See Also