clojure
Начало работы с веб-разработкой
Поиск…
Создайте новое приложение Ring с помощью http-kit
Кольцо является стандартным стандартным API для HTTP-приложений clojure, подобных Ruby's Rack и WSGI Python.
Мы будем использовать его с веб - сервером http-kit .
Создайте новый проект Leiningen:
lein new app myapp
Добавьте зависимость http-kit к project.clj
:
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.18"]]
Добавить :require
для http-kit к core.clj
:
(ns test.core
(:gen-class)
(:require [org.httpkit.server :refer [run-server]]))
Определить обработчик запроса кольца. Обработчики запросов - это просто функции от запроса до ответа, а ответ - это просто карта:
(defn app [req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
Здесь мы просто возвращаем 200 OK с тем же контентом для любого запроса.
Запустите сервер в -main
функции:
(defn -main
[& args]
(run-server app {:port 8080}))
Запустите с lein run
и откройте http://localhost:8080/
в браузере.
Новое веб-приложение с Luminus
Luminus - это микроструктура Clojure, основанная на наборе легких библиотек. Он предназначен для обеспечения надежной, масштабируемой и простой в использовании платформы. С Luminus вы можете сосредоточиться на разработке своего приложения так, как хотите, без каких-либо отвлекающих факторов. Он также имеет очень хорошую документацию, которая охватывает некоторые из главных тем
Легко начать с люминуса. Просто создайте новый проект со следующими командами:
lein new luminus my-app
cd my-app
lein run
Ваш сервер запустится на порт 3000
Запуск lein new luminus myapp
создаст приложение, используя шаблон профиля по умолчанию. Однако, если вы хотите добавить дополнительную функциональность к своему шаблону, вы можете добавить подсказки профиля для расширенной функциональности.
Веб-серверы
- + aleph - добавляет поддержку сервера Aleph проекту
- + jetty - добавляет поддержку Jetty проекту
- + http-kit - добавляет веб-сервер HTTP Kit к проекту
базы данных
- + h2 - добавляет пространство имен db.core и зависимости H2 db
- + sqlite - добавляет пространство имен db.core и SQL-зависимые зависимости
- + postgres - добавляет пространство имен db.core и добавляет зависимости PostreSQL
- + mysql - добавляет пространство имен db.core и добавляет зависимости MySQL
- + mongodb - добавляет пространство имен db.core и зависимости MongoDB
- + datomic - добавляет пространство имен db.core и Datomic зависимостей
разнообразный
- + auth - добавляет зависимое от Buddy и промежуточное ПО для проверки подлинности
- + auth-jwe - добавляет зависимость Бадди с бэкэндом JWE
- + сидр - добавляет поддержку CIDER с использованием плагина CIDER nREPL
- + cljs - добавляет поддержку [ClojureScript] [cljs] с реагентом
- + re-frame - добавляет поддержку [ClojureScript] [cljs] с повторным кадром
- + огурец - профиль для огурца с clj-webdriver
- + swagger - добавляет поддержку Swagger-UI, используя библиотеку compojure-api
- + sassc - добавляет поддержку файлов SASS / SCSS с использованием компилятора командной строки SassC
- + service - создать сервисное приложение без шаблона front-end, например, HTML-шаблонов
- + war - добавьте поддержку создания WAR-архивов для развертывания на таких серверах, как Apache Tomcat (НЕ должны использоваться для приложений Immutant, работающих на WildFly)
- + сайт - создает шаблон для сайта, используя указанную базу данных (по умолчанию H2) и ClojureScript
Чтобы добавить профиль, просто передайте его в качестве аргумента после имени вашего приложения, например:
lein new luminus myapp +cljs
Вы также можете смешивать несколько профилей при создании приложения, например:
lein new luminus myapp +cljs +swagger +postgres