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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow