clojure
Aan de slag met webontwikkeling
Zoeken…
Maak een nieuwe Ring-applicatie met http-kit
Ring is de facto standaard API voor clojure HTTP-applicaties, vergelijkbaar met Ruby's Rack en Python's WSGI.
We gaan het gebruiken met http-kit webserver.
Maak een nieuw Leiningen-project:
lein new app myapp
Voeg http-kit afhankelijkheid toe aan project.clj
:
:dependencies [[org.clojure/clojure "1.8.0"]
[http-kit "2.1.18"]]
Toevoegen :require
voor http-kit naar core.clj
:
(ns test.core
(:gen-class)
(:require [org.httpkit.server :refer [run-server]]))
Definieer ring verzoek handler. Verzoekbehandelaars zijn slechts functies van verzoek tot antwoord en antwoord is slechts een kaart:
(defn app [req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
Hier retourneren we gewoon 200 OK met dezelfde inhoud voor elk verzoek.
Start de server in -main
:
(defn -main
[& args]
(run-server app {:port 8080}))
Voer uit met lein run
en open http://localhost:8080/
in browser.
Nieuwe webapplicatie met Luminus
Luminus is een Clojure-micro-framework op basis van een set lichtgewicht bibliotheken. Het beoogt een robuust, schaalbaar en gebruiksvriendelijk platform te bieden. Met Luminus kunt u zich concentreren op het ontwikkelen van uw app zoals u dat wilt, zonder enige afleiding. Het heeft ook zeer goede documentatie die enkele van de belangrijkste onderwerpen behandelt
Het is heel gemakkelijk om met luminus te beginnen. Maak gewoon een nieuw project met de volgende opdrachten:
lein new luminus my-app
cd my-app
lein run
Uw server start op poort 3000
Als u lein new luminus myapp
wordt een toepassing gemaakt met de standaard profielsjabloon. Als u echter meer functionaliteit aan uw sjabloon wilt toevoegen, kunt u profielhints toevoegen voor de uitgebreide functionaliteit.
Webservers
- + aleph - voegt Aleph-serverondersteuning toe aan het project
- + jetty - voegt Jetty-ondersteuning toe aan het project
- + http-kit - voegt de HTTP Kit-webserver toe aan het project
databases
- + h2 - voegt db.core namespace en H2 db afhankelijkheden toe
- + sqlite - voegt db.core-naamruimte en SQLite db-afhankelijkheden toe
- + postgres - voegt de naamruimte db.core toe en voegt afhankelijkheden van PostreSQL toe
- + mysql - voegt db.core-naamruimte toe en voegt MySQL-afhankelijkheden toe
- + mongodb - voegt db.core-naamruimte en MongoDB-afhankelijkheden toe
- + datomic - voegt db.core namespace en Datomic afhankelijkheden toe
Diversen
- + auth - voegt buddy-afhankelijkheid en authenticatiemiddleware toe
- + auth-jwe - voegt Buddy-afhankelijkheid toe met de JWE-backend
- + cider - voegt ondersteuning toe voor CIDER met behulp van CIDER nREPL plug-in
- + cljs - voegt [ClojureScript] [cljs] ondersteuning toe met Reagent
- + re-frame - voegt [ClojureScript] [cljs] ondersteuning toe met re-frame
- + komkommer - een profiel voor komkommer met clj-webdriver
- + swagger - voegt ondersteuning toe voor Swagger-UI met behulp van de compojure-api-bibliotheek
- + sassc - voegt ondersteuning toe voor SASS / SCSS-bestanden met behulp van de SassC-opdrachtregelcompiler
- + service - maak een servicetoepassing zonder de front-end boilerplate zoals HTML-sjablonen
- + oorlog - voeg ondersteuning toe voor het bouwen van WAR-archieven voor implementatie op servers zoals Apache Tomcat (mag NIET worden gebruikt voor Immutant-apps die op WildFly draaien)
- + site - maakt een sjabloon voor een site met behulp van de opgegeven database (standaard H2) en ClojureScript
Om een profiel toe te voegen, geeft u het gewoon door als argument achter de naam van uw toepassing, bijvoorbeeld:
lein new luminus myapp +cljs
U kunt ook meerdere profielen combineren bij het maken van de applicatie, bijvoorbeeld:
lein new luminus myapp +cljs +swagger +postgres