Getting Started

weavejester edited this page Apr 22, 2012 · 9 revisions

Create a new project with Leiningen.

$ lein new hello-world
$ cd hello-world

Add ring-core and ring-jetty-adapter as a dependencies in project.clj.

(defproject hello-world "1.0.0-SNAPSHOT"
  :description "FIXME: write"
  :dependencies [[org.clojure/clojure "1.2.1"]
                 [ring/ring-core "1.0.2"]
                 [ring/ring-jetty-adapter "1.0.2"]])

Next, edit src/hello_world/core.clj and add a basic handler.

(ns hello-world.core)

(defn handler [request]
  {:status 200
   :headers {"Content-Type" "text/html"}
   :body "Hello World"})

Now we're ready to connect the handler to an adapter. Start an interactive REPL using Leiningen.

$ lein repl

Then at the REPL, run the Jetty adapter with your handler.

=> (use 'ring.adapter.jetty)
=> (use 'hello-world.core)
=> (run-jetty handler {:port 3000})

A web server will now be running at: http://localhost:3000/