web-dev-qa-db-ja.com

最小限のワープWebサーバーの例

Haskellの Warp webserverを使用してWebサイトを作成したいと思います。

私はHaskellの初心者なので、 これ のような例は私には複雑すぎます。

Warpの使い方の簡単で最小限の例を誰かに教えてもらえますか?

注:この質問は、Q&Aスタイルで回答されたため、意図的に調査努力を示していません。

35
Uli Köhler

Warp 3.0+を使用した最小限のHello Worldアプリケーションを次に示します。それを実行してから、http://localhost:3000に移動します。この例では、Hello worldを示します。

この例を最小限に抑えるために、URLパスはまったく処理されません(どのパスにも同じコンテンツが配信されます)。 URLパス処理を組み込んだもう少し長い例については、 Haskell Wiki を参照してください。

{-# LANGUAGE OverloadedStrings #-}

import Network.Wai (responseLBS, Application)
import Network.Wai.Handler.Warp (run)
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)

main = do
    let port = 3000
    putStrLn $ "Listening on port " ++ show port
    run port app

app :: Application
app req f =
    f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!"

更新2014-06-20:Warp3.0にはいくつかのAPIの変更が含まれていました-それらをコードに反映します。

53
Uli Köhler