clojure
Pierwsze kroki w tworzeniu stron internetowych
Szukaj…
Utwórz nową aplikację Ring z zestawem http
Pierścień jest de facto standardowym interfejsem API dla aplikacji HTTP clojure, podobnie jak Rack Ruby i WSGI Pythona.
Będziemy go używać z serwerem WWW http-kit .
Utwórz nowy projekt Leiningen:
lein new app myapp
Dodaj zależność http-kit do project.clj
:
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.18"]]
Dodaj :require
dla zestawu http do core.clj
:
(ns test.core
(:gen-class)
(:require [org.httpkit.server :refer [run-server]]))
Zdefiniuj moduł obsługi żądań pierścienia. Procedury obsługi żądań to tylko funkcje od żądania do odpowiedzi, a odpowiedź to tylko mapa:
(defn app [req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
Tutaj po prostu zwracamy 200 OK z taką samą treścią dla każdego żądania.
Uruchom serwer w -main
funkcji:
(defn -main
[& args]
(run-server app {:port 8080}))
Uruchom z lein run
i otwórz http://localhost:8080/
w przeglądarce.
Nowa aplikacja internetowa z Luminus
Luminus to mikroukład Clojure oparty na zestawie lekkich bibliotek. Ma na celu zapewnienie solidnej, skalowalnej i łatwej w użyciu platformy. Dzięki Luminus możesz skupić się na rozwijaniu aplikacji tak, jak chcesz, bez żadnych zakłóceń. Ma również bardzo dobrą dokumentację, która obejmuje niektóre z głównych tematów
Bardzo łatwo jest zacząć od światła. Po prostu utwórz nowy projekt za pomocą następujących poleceń:
lein new luminus my-app
cd my-app
lein run
Twój serwer uruchomi się na porcie 3000
Uruchamianie lein new luminus myapp
spowoduje utworzenie aplikacji przy użyciu domyślnego szablonu profilu. Jeśli jednak chcesz dołączyć do szablonu dodatkowe funkcje, możesz dołączyć wskazówki dotyczące profilu dla rozszerzonej funkcjonalności.
Serwery WWW
- + aleph - dodaje obsługę projektu serwera Aleph do projektu
- + jetty - dodaje obsługę Jetty do projektu
- + http-kit - dodaje serwer WWW HTTP Kit do projektu
bazy danych
- + h2 - dodaje przestrzeń nazw db.core i H2 db
- + sqlite - dodaje przestrzeń nazw db.core i SQLite db
- + postgres - dodaje przestrzeń nazw db.core i dodaje zależności PostreSQL
- + mysql - dodaje przestrzeń nazw db.core i dodaje zależności MySQL
- + mongodb - dodaje przestrzeń nazw db.core i zależności MongoDB
- + datomic - dodaje przestrzeń nazw db.core i zależności Datomic
Różne
- + auth - dodaje oprogramowanie pośredniczące zależności i uwierzytelniania Buddy
- + auth-jwe - dodaje zależność Buddy od backendu JWE
- + cydr - dodaje obsługę CIDER za pomocą wtyczki CIDER nREPL
- + cljs - dodaje obsługę [ClojureScript] [cljs] z Odczynnikiem
- + re-frame - dodaje obsługę [ClojureScript] [cljs] z re-frame
- + ogórek - profil do ogórka z clj-webdriver
- + swagger - dodaje obsługę interfejsu Swagger-UI przy użyciu biblioteki compojure-api
- + sassc - dodaje obsługę plików SASS / SCSS przy użyciu kompilatora wiersza poleceń SassC
- + service - stwórz aplikację serwisową bez frontonu, np. szablony HTML
- + wojna - dodaj obsługę budowania archiwów WAR do wdrażania na serwerach takich jak Apache Tomcat (NIE powinien być używany w aplikacjach Immutant działających na WildFly)
- + site - tworzy szablon dla strony przy użyciu określonej bazy danych (domyślnie H2) i ClojureScript
Aby dodać profil, wystarczy przekazać go jako argument po nazwie aplikacji, np .:
lein new luminus myapp +cljs
Podczas tworzenia aplikacji możesz także mieszać wiele profili, np .:
lein new luminus myapp +cljs +swagger +postgres