使用 http-kit 建立新的 Ring 應用程式

Ring 是 clojure HTTP 應用程式的事實上的標準 API,類似於 Ruby 的 Rack 和 Python 的 WSGI。

我們將使用 http-kit webserver。

建立新的 Leiningen 專案:

lein new app myapp

將 http-kit 依賴項新增到 project.clj

  :dependencies [[org.clojure/clojure "1.8.0"]
                 [http-kit "2.1.18"]]

將 http-kit 的:require 新增到 core.clj

(ns test.core
  (:gen-class)
  (:require [org.httpkit.server :refer [run-server]]))

定義環請求處理程式。請求處理程式只是從請求到響應的函式,響應只是一個對映:

(defn app [req]
  {:status  200
   :headers {"Content-Type" "text/html"}
   :body    "hello HTTP!"})

在這裡,我們只返回 200 OK,併為任何請求提供相同的內容。

-main 函式中啟動伺服器:

(defn -main
  [& args]
  (run-server app {:port 8080}))

使用 lein run 執行並在瀏覽器中開啟 http://localhost:8080/