clojure
Erste Schritte mit der Webentwicklung
Suche…
Erstellen Sie eine neue Ring-Anwendung mit dem http-kit
Ring ist de facto eine Standard-API für clojure-HTTP-Anwendungen, ähnlich wie Rubys Rack und Pythons WSGI.
Wir werden es mit dem http-kit Webserver verwenden.
Neues Leiningen-Projekt erstellen:
lein new app myapp
Hinzufügen der http-kit-Abhängigkeit zu project.clj
:
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.18"]]
Add :require
http-kit für core.clj
:
(ns test.core
(:gen-class)
(:require [org.httpkit.server :refer [run-server]]))
Definieren Sie den Ringanforderungshandler. Anforderungshandler sind nur Funktionen von der Anfrage bis zur Antwort, und die Antwort ist nur eine Karte:
(defn app [req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
Hier geben wir einfach 200 OK mit dem gleichen Inhalt für jede Anfrage zurück.
Starten Sie den Server in der -main
Funktion:
(defn -main
[& args]
(run-server app {:port 8080}))
Führen Sie mit lein run
und öffnen Sie http://localhost:8080/
im Browser.
Neue Webanwendung mit Luminus
Luminus ist ein Clojure-Mikro-Framework, das auf einer Reihe leichter Bibliotheken basiert. Ziel ist es, eine robuste, skalierbare und benutzerfreundliche Plattform bereitzustellen. Mit Luminus können Sie sich darauf konzentrieren, Ihre App ohne Ablenkungen so zu entwickeln, wie Sie es möchten. Es hat auch eine sehr gute Dokumentation, die einige der wichtigsten Themen abdeckt
Es ist sehr leicht mit Luminus zu beginnen. Erstellen Sie einfach ein neues Projekt mit den folgenden Befehlen:
lein new luminus my-app
cd my-app
lein run
Ihr Server wird am Port 3000 gestartet
lein new luminus myapp
, lein new luminus myapp
eine Anwendung unter Verwendung der Standardprofilvorlage. Wenn Sie Ihrer Vorlage jedoch weitere Funktionen hinzufügen möchten, können Sie Profilhinweise für die erweiterte Funktionalität anfügen.
Webserver
- + aleph - fügt dem Projekt Aleph-Serverunterstützung hinzu
- + jetty - fügt dem Projekt Jetty-Unterstützung hinzu
- + http-kit - fügt den HTTP Kit-Webserver dem Projekt hinzu
Datenbanken
- + h2 - fügt db.core-Namespace und H2-DB-Abhängigkeiten hinzu
- + sqlite - fügt db.core-Namespace und SQLite-Datenbankabhängigkeiten hinzu
- + postgres - fügt db.core-Namespace hinzu und fügt PostreSQL-Abhängigkeiten hinzu
- + mysql - fügt db.core-Namespace hinzu und fügt MySQL-Abhängigkeiten hinzu
- + mongodb - fügt db.core-Namespace und MongoDB-Abhängigkeiten hinzu
- + datomic - fügt db.core-Namespace und Datomic-Abhängigkeiten hinzu
Verschiedenes
- + auth - Fügt Buddy-Abhängigkeits- und Authentifizierungs-Middleware hinzu
- + auth-jwe - fügt Buddy-Abhängigkeit mit dem JWE-Backend hinzu
- + cider - fügt Unterstützung für CIDER mithilfe des CIDER nREPL-Plugins hinzu
- + cljs - fügt Unterstützung für [ClojureScript] [cljs] mit Reagent hinzu
- + re-frame - fügt Unterstützung von [ClojureScript] [cljs] mit re-frame hinzu
- + gurke - ein profil für gurke mit clj-webdriver
- + swagger - fügt Unterstützung für Swagger-UI mithilfe der Compojure-API-Bibliothek hinzu
- + sassc - Unterstützung für SASS / SCSS-Dateien mithilfe des SassC-Befehlszeilen-Compilers
- + service - Erstellen Sie eine Serviceanwendung ohne die vordere Endstufe, z. B. HTML-Vorlagen
- + war - Unterstützung für das Erstellen von WAR-Archiven für die Bereitstellung auf Servern wie Apache Tomcat (sollte NICHT für unbeaufsichtigte Apps verwendet werden, die unter WildFly ausgeführt werden)
- + site - Erstellt eine Vorlage für eine Website mit der angegebenen Datenbank (standardmäßig H2) und ClojureScript
Um ein Profil hinzuzufügen, übergeben Sie es einfach als Argument hinter dem Namen Ihrer Anwendung, zB:
lein new luminus myapp +cljs
Sie können beim Erstellen der Anwendung auch mehrere Profile mischen, z.
lein new luminus myapp +cljs +swagger +postgres