Учебники

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

В 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, поэтому, если вы перейдете в это местоположение, вы получите следующий вывод.

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")
   (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 , вы получите следующий вывод.