使用 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/