descargar - Biblioteca Haskell para la comunicación HTTP.
haskell platform windows download (4)
Además de Network.HTTP.Conduit
existe Network.Http.Client
que expone una interfaz io-streams
.
Network.HTTP.Conduit
tiene una API limpia (usa Network.HTTP.Types
) y es bastante fácil de usar si sabes un poco sobre conductos. Ejemplo:
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Conduit
import Network.HTTP.Conduit
import qualified Data.Aeson as J
main =
do manager <- newManager def
initReq <- parseUrl "https://api.github.com/user"
let req = applyBasicAuth "niklasb" "password" initReq
resp <- runResourceT $ httpLbs req manager
print (responseStatus resp)
print (lookup "content-type" (responseHeaders resp))
-- you will probably want a proper FromJSON instance here,
-- rather than decoding to Data.Aeson.Object
print (J.decode (responseBody resp) :: Maybe J.Object)
También asegúrate de consultar el tutorial .
Servant es fácil de usar (aunque es difícil de entender) y mágico. Le permite especificar la API como un tipo deshabitado y genera comportamientos de solicitud y respuesta basados en ella. Nunca tendrá que preocuparse por la serialización o deserialización, ni siquiera por JSON: convierte JSON desde y hacia los objetos nativos de Haskell automáticamente, según la API. Tiene un excelente tutorial , también.