Building Web Applications with Clojure
3.4 (20 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
286 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Building Web Applications with Clojure to your Wishlist.

Add to Wishlist

Building Web Applications with Clojure

Explore the secrets and tricks of building Clojure web applications
3.4 (20 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
286 students enrolled
Created by Packt Publishing
Last updated 1/2015
Current price: $12 Original price: $85 Discount: 86% off
3 days left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Understand how Ring handlers work and implement simple routing mechanisms
  • Grasp the intricacies of the middleware to implement it in your own way
  • Discover how to handle forms, cookies, and sessions in one go
  • Get acquainted with the REST API architecture in Clojure and build a sample application
  • Manipulate queries easily with SQL Korma
  • Set up routing with Compojure and HTML generation with Hiccup
  • Find out how to build REST APIs with Liberator and learn templating with Enlive
View Curriculum
  • For all those of you who already know Clojure, this video will help you sharpen your skills.

This video course starts with a simple project setup and moves on to the various means to use frameworks or libraries, such as Ring and ClojureScript, leading the way to complex web solutions in Clojure. You will be presented with ways to connect to popular databases, such as PostgreSQL or MongoDB, and learn how some existing libraries work and how to use them properly. Thereon you will move to writing single-page applications with ClojureScript and REST API.

When you're finished with Building Web applications with Clojure, you'll be able to build and diagnose complex web systems in Clojure—regardless of the particular technologies applied.

About the Author

Tomek Lipski is an experienced programmer and open source enthusiast. He's been building and designing the architecture of web applications for seventeen years. He works with Clojure full-time. Tomek has also released a Ganelon Open Source microframework, which eases the development of AJAX web applications in Clojure.

Who is the target audience?
  • If you are a Java programmer and you want to gain expertise in web application development and would like to begin the journey with Clojure, then this course is perfect for you.
Compare to Other Clojure Courses
Curriculum For This Course
31 Lectures
Getting Started
5 Lectures 14:50

Configuring projects correctly for development is essential in every programming language. The use of Lein and Ring in web development under Clojure allows the developer to focus on the actual code.

Project Setup

The Lein-ring plugin simplifies a lot of common web development tasks when programming in Clojure. In this video, we will see how to connect it to a project and configure its settings.

Lein-Ring Plugin

Knowing about Ring handlers is very important when it comes to writing web applications in Clojure. If the programmer understands what it does and how it works, all other Ring concepts become clear and understandable.

Simple Ring Handler

The Ring server (based on the Jetty adapter) allows the developer to quickly run the written Clojure web app. In addition, we will also see how the Ring server speeds up the development cycle with dynamic Clojure namespace reloading.

Running the Ring Server

Every web application needs to be distributed to a production/test/staging environment. This video presents the different options that are available when using the Lein-ring plugin.

Preview 03:37
Ring Handlers
5 Lectures 15:14

How the Ring handler works and how it is just like any other Clojure function.

Ring Handler Anatomy

How to work with Ring handler request map.

Request Map

How to return appropriate Ring responses.

Preview 03:07

How to dispatch Ring requests to different handler functions.


Learn how route functions can be composed to streamline common tasks.

The Not Found Error and Error Handling
4 Lectures 14:28

An overview of the common mechanisms for Clojure web apps as reusable components.


Rewrite a handler that provides a common mechanism to work as a middleware.

Middleware Example

Modify Ring request and response maps to provide additional features.

Altering Requests and Responses

Modify the handler configuration to use the Ring file that serves as middleware.

Using Existing Middleware
Forms and Session Handling
4 Lectures 17:05

Apply the correct middleware to access form data in Ring web applications.

Preview 05:53

Build dynamic responses from Ring handlers.

Generating HTML Content

Use Ring middleware to send cookies to a browser and read received cookies.

Manipulating Cookies

Use Ring middleware to manage sessions in Clojure web applications.

Ring Sessions
Building RESTful APIs
3 Lectures 15:56

Clojure/Ring can be used to provide RESTful APIs as well as standard web applications.

APIs – Introduction and Routing Building RESTful APIs

Build an example RESTful API with Clojure and Ring.

Preview 05:16

Handle errors in an API in a way that is understandable to other applications.

Handling Errors in REST APIs
Database Connectivity
3 Lectures 12:13

How to access the PostgreSQL database from a Clojure/Ring web application.

Connecting to PostgreSQL

Using Korma

Connecting a Clojure web application to a MongoDB NoSQL database.

Connecting to MongoDB
3 Lectures 13:14

Write dynamic applications in ClojureScript instead of JavaScript.

Introduction to ClojureScript

Learn how to change page contents and access JavaScript objects from ClojureScript.

Manipulating the DOM Tree with ClojureScript

Communicate with the backend from ClojureScript level.

Accessing REST APIs from ClojureScript
Useful Web Libraries in Clojure
4 Lectures 16:04

Use Compojure to organize your Ring handlers.

Preview 04:47

Use Hiccup for dynamic HTML generation in Clojure.

HTML Generation with Hiccup

Use Enlive to separate HTML templates from Clojure code.

HTML Templating with Enlive

Use Liberator to provide REST APIs with little effort.

REST APIs with Liberator
About the Instructor
Packt Publishing
3.9 Average rating
8,274 Reviews
59,226 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.