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, вы получите следующий результат.