Wai の一番基本的なコードを書こうと思います。デプロイするかたちではなく、 ローカルで稼働させるかたちで書きます。
任意のディレクトリに任意の Cabal ファイルを作ります。ここでは「wai」 ディレクトリに「app.cabal」を作りました。
app.cabal
name: app
version: 0.1.0.0
category: Web
build-type: Simple
cabal-version: >=1.10
executable app
main-is: Main.hs
build-depends: base >=4.7 && <5.0
, warp
, wai
, http-types
hs-source-dirs: .
default-language: Haskell2010
wai ディレクトリに「Main.hs」ファイルを作ります。
Main.hs
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai (Application, responseLBS)
import Network.HTTP.Types (ok200)
import Network.Wai.Handler.Warp (run)
app :: Application
app _ respond =
respond $ responseLBS
ok200
[("Content-Type", "text/plain")]
"Hello, Web!"
main :: IO ()
main = run 8080 app
ターミナルで wai ディレクトリに移動して、次のようにビルドします。
$ stack init
すぐに終わります。
$ stack build
かなり時間がかかります。
ターミナルに次のように入力して、サーバーを起動します。
$ stack exec app
ブラウザを起動して「localhost:8080/」にアクセスします。
サーバーを終了させるには、ターミナルで「Control」キーを押しながら「c」キーを 押します。
^C