clojure
Komma igång med webbutveckling
Sök…
Skapa en ny Ring-applikation med http-kit
Ring är de facto standard API för clojure HTTP-applikationer, liknande Ruby's Rack och Pythons WSGI.
Vi kommer att använda det med http-kit webbserver.
Skapa nytt Leiningen-projekt:
lein new app myapp
Lägg till http-kit-beroende till project.clj
:
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.18"]]
Lägg till :require
för http-kit till core.clj
:
(ns test.core
(:gen-class)
(:require [org.httpkit.server :refer [run-server]]))
Definiera ringbegäran. Begäran är bara funktioner från förfrågan till svaret och svaret är bara en karta:
(defn app [req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
Här returnerar vi bara 200 OK med samma innehåll för varje begäran.
Starta servern i -main
funktionen:
(defn -main
[& args]
(run-server app {:port 8080}))
Kör med lein run
och öppna http://localhost:8080/
i webbläsaren.
Ny webbapplikation med Luminus
Luminus är ett Clojure-mikroramverk baserat på en uppsättning av lätta bibliotek. Det syftar till att tillhandahålla en robust, skalbar och lättanvänd plattform. Med Luminus kan du fokusera på att utveckla din app som du vill utan några distraktioner. Den har också mycket bra dokumentation som täcker några av de stora ämnena
Det är väldigt lätt att börja med luminus. Skapa bara ett nytt projekt med följande kommandon:
lein new luminus my-app
cd my-app
lein run
Din server startar på port 3000
Att köra lein new luminus myapp
skapar ett program med standardprofilmallen. Men om du vill knyta ytterligare funktionalitet till din mall kan du lägga till profiltips för den utökade funktionaliteten.
Webbservrar
- + aleph - lägger till Aleph-serverstöd till projektet
- + brygga - lägger till bryggans stöd till projektet
- + http-kit - lägger till HTTP Kit webbserver till projektet
databaser
- + h2 - lägger till db.core-namnutrymme och H2 db-beroenden
- + sqlite - lägger till db.core-namnutrymme och SQLite db-beroenden
- + postgres - lägger till db.core-namnutrymme och lägger till PostreSQL-beroenden
- + mysql - lägger till db.core-namnutrymme och lägger till MySQL-beroenden
- + mongodb - lägger till db.core-namnutrymme och MongoDB-beroenden
- + datomic - lägger till db.core-namnutrymme och Datomic-beroenden
diverse
- + Author - lägger till kompisberoende och mellanprogram för autentisering
- + autor-jwe - lägger till kompisberoende med JWE-backend
- + cider - lägger till stöd för CIDER med CIDER nREPL-plugin
- + cljs - lägger till [ClojureScript] [cljs] -stöd med Reagent
- + re-frame - lägger till [ClojureScript] [cljs] -stöd med re-frame
- + gurka - en profil för gurka med clj-webbdrivare
- + swagger - lägger till stöd för Swagger-UI med hjälp av compojure-api-biblioteket
- + sassc - lägger till stöd för SASS / SCSS-filer med SassC-kommandoradskompilator
- + service - skapa en serviceapplikation utan den främre pannplattan, t.ex. HTML-mallar
- + war - lägg till stöd för att bygga WAR-arkiv för distribution till servrar som Apache Tomcat (ska INTE användas för Immutant-appar som körs på WildFly)
- + site - skapar mall för webbplats med den angivna databasen (H2 som standard) och ClojureScript
För att lägga till en profil helt enkelt skicka den som ett argument efter ditt applikationsnamn, t.ex.
lein new luminus myapp +cljs
Du kan också blanda flera profiler när du skapar applikationen, t.ex.:
lein new luminus myapp +cljs +swagger +postgres