Clojure - Приложения

Clojure имеет несколько дополнительных библиотек, которые позволяют создавать Desktop а также Web-based applications. Давайте обсудим каждый из них.

Sr. No. Приложения и описание
1 Рабочий стол - качели

See-saw - это библиотека, которую можно использовать для создания настольных приложений.

2 Рабочий стол - изменение значения текста

Значение содержимого в окне можно изменить с помощью ‘config!’вариант. В следующем примере config! Опция используется для изменения содержимого окна на новое значение «Good Bye».

3 Рабочий стол - отображение модального диалогового окна

Модальное диалоговое окно может быть показано с помощью метода предупреждения класса качелей. Метод принимает текстовое значение, которое должно отображаться в модальном диалоговом окне.

4 Рабочий стол - отображение кнопок

Кнопки могут отображаться с помощью класса кнопок.

5 Рабочий стол - отображение меток

Ярлыки могут отображаться с помощью класса ярлыков.

6 Рабочий стол - отображение текстовых полей

Текстовые поля могут отображаться с помощью текстового класса.

Веб-приложения - Введение

Чтобы создать веб-приложение в Clojure, вам необходимо использовать библиотеку приложений Ring, которая доступна по следующей ссылке https://github.com/ring-clojure/ring

Вам необходимо убедиться, что вы загрузили необходимые jar-файлы с сайта и добавили их в качестве зависимости для приложения Clojure.

В Ring framework предоставляет следующие возможности -

  • Устанавливает все таким образом, что http-запрос поступает в ваше веб-приложение как обычная Clojure HashMap, а также делает так, чтобы вы могли возвращать ответ как HashMap.

  • Предоставляет спецификацию, точно описывающую, как должны выглядеть эти карты запросов и ответов.

  • Переносит веб-сервер (Jetty) и подключает к нему ваше веб-приложение.

Платформа Ring автоматически может запускать веб-сервер и обеспечивает работу приложения Clojure на этом сервере. Тогда можно также использовать фреймворк Compojure. Это позволяет создавать маршруты, как сейчас разрабатывается большинство современных веб-приложений.

Creating your first Clojure application - В следующем примере показано, как вы можете создать свое первое веб-приложение на Clojure.

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

Давайте посмотрим на следующие аспекты программы -

  • В ‘defroutes’ используется для создания маршрутов, чтобы запросы к веб-приложению по различным маршрутам могли быть направлены различным функциям в вашем приложении Clojure.

  • В приведенном выше примере «/» известен как маршрут по умолчанию, поэтому, когда вы переходите к основному веб-приложению, в веб-браузер будет отправлена ​​строка «Hello World».

  • Если пользователь попадет на любой URL-адрес, который не может быть обработан приложением Clojure, он отобразит строку «Not Found».

Когда вы запускаете приложение Clojure, по умолчанию ваше приложение будет загружено как localhost: 3000, поэтому, если вы перейдете в это место, вы получите следующий вывод.

Веб-приложения - добавление дополнительных маршрутов в ваше веб-приложение

Вы также можете добавить больше маршрутов в свое веб-приложение. В следующем примере показано, как этого добиться.

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (GET "/Tutorial" [] "This is a tutorial on Clojure")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

Как видите, добавить маршрут в приложение так же просто, как добавить еще одну функцию GET с маршрутом url. (GET "/ Tutorial" [] "Это учебное пособие по Clojure")

Если вы перейдете к месту http://localhost:3000/Tutorial, вы получите следующий результат.