В Clojure есть несколько библиотек, которые позволяют создавать приложения для рабочего стола и веб-приложения . Давайте обсудим каждый из них.
Sr.No. | Приложения и описание |
---|---|
1 | Рабочий стол — Качели
See-saw — это библиотека, которую можно использовать для создания настольных приложений. |
2 | Рабочий стол — изменение значения текста
Значение содержимого в окне может быть изменено с помощью «config!» вариант. В следующем примере конфиг! опция используется для изменения содержимого окна на новое значение «До свидания». |
3 | Рабочий стол — отображение модального диалогового окна
Модальное диалоговое окно может быть показано с помощью метода alert класса see-saw. Метод принимает текстовое значение, которое необходимо отобразить в модальном диалоговом окне. |
4 | Рабочий стол — отображение кнопок
Кнопки могут отображаться с помощью класса кнопок. |
5 | Рабочий стол — отображение меток
Ярлыки могут отображаться с помощью класса ярлыков. |
6 | Рабочий стол — Отображение текстовых полей
Текстовые поля могут быть отображены с помощью текстового класса. |
See-saw — это библиотека, которую можно использовать для создания настольных приложений.
Значение содержимого в окне может быть изменено с помощью «config!» вариант. В следующем примере конфиг! опция используется для изменения содержимого окна на новое значение «До свидания».
Модальное диалоговое окно может быть показано с помощью метода alert класса see-saw. Метод принимает текстовое значение, которое необходимо отобразить в модальном диалоговом окне.
Кнопки могут отображаться с помощью класса кнопок.
Ярлыки могут отображаться с помощью класса ярлыков.
Текстовые поля могут быть отображены с помощью текстового класса.
Веб-приложения — Введение
Для создания веб-приложения в Clojure необходимо использовать библиотеку приложений Ring, которая доступна по следующей ссылке https://github.com/ring-clojure/ring.
Вам необходимо убедиться, что вы загрузили необходимые jar-файлы с сайта и добавили их в качестве зависимости для приложения Clojure.
Платформа Ring предоставляет следующие возможности:
-
Настраивает все так, чтобы запрос http поступал в ваше веб-приложение в виде обычного Clojure HashMap, а также настраивал его так, чтобы вы могли возвращать ответ в виде HashMap.
-
Предоставляет спецификацию, описывающую, как именно должны выглядеть эти карты запросов и ответов.
-
Создает веб-сервер (Jetty) и подключает к нему ваше веб-приложение.
Настраивает все так, чтобы запрос http поступал в ваше веб-приложение в виде обычного Clojure HashMap, а также настраивал его так, чтобы вы могли возвращать ответ в виде HashMap.
Предоставляет спецификацию, описывающую, как именно должны выглядеть эти карты запросов и ответов.
Создает веб-сервер (Jetty) и подключает к нему ваше веб-приложение.
Платформа Ring автоматически запускает веб-сервер и обеспечивает работу приложения Clojure на этом сервере. Тогда можно также использовать платформу Compojure. Это позволяет создавать маршруты, как в настоящее время разрабатывается большинство современных веб-приложений.
Создание первого приложения Clojure. В следующем примере показано, как создать первое веб-приложение в 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».
‘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 , вы получите следующий вывод.