Ricerca…


Crea una nuova applicazione Ring con http-kit

Ring è de facto API standard per applicazioni HTTP clojure, simile a Ruby's Rack e Python WSGI.

Lo useremo con il webserver http-kit .

Crea un nuovo progetto Leiningen:

lein new app myapp

Aggiungi la dipendenza da http-kit a project.clj :

  :dependencies [[org.clojure/clojure "1.8.0"]
                 [http-kit "2.1.18"]]

Aggiungi :require http-kit per core.clj :

(ns test.core
  (:gen-class)
  (:require [org.httpkit.server :refer [run-server]]))

Definire il gestore della richiesta dell'anello. I gestori di richieste sono solo funzioni dalla richiesta alla risposta e la risposta è solo una mappa:

(defn app [req]
  {:status  200
   :headers {"Content-Type" "text/html"}
   :body    "hello HTTP!"})

Qui restituiamo solo 200 OK con lo stesso contenuto per qualsiasi richiesta.

Avvia il server in -main function:

(defn -main
  [& args]
  (run-server app {:port 8080}))

Esegui con lein run e apri http://localhost:8080/ nel browser.

Nuova applicazione web con Luminus

Luminus è un micro-framework Clojure basato su una serie di librerie leggere. Mira a fornire una piattaforma robusta, scalabile e facile da usare. Con Luminus puoi concentrarti sullo sviluppo della tua app come vuoi senza distrazioni. Ha anche un'ottima documentazione che copre alcuni degli argomenti più importanti

È molto facile iniziare con il luminus. Basta creare un nuovo progetto con i seguenti comandi:

lein new luminus my-app
cd my-app
lein run

Il tuo server inizierà sulla porta 3000

Eseguendo lein new luminus myapp verrà creata un'applicazione utilizzando il modello profilo predefinito. Tuttavia, se si desidera aggiungere ulteriori funzionalità al modello, è possibile aggiungere suggerimenti di profilo per la funzionalità estesa.

Server Web

  • + aleph - aggiunge il supporto al server Aleph al progetto
  • + jetty - aggiunge il supporto di Jetty al progetto
  • + http-kit: aggiunge il server web del kit HTTP al progetto

banche dati

  • + h2 - aggiunge lo spazio dei nomi db.core e le dipendenze di db di H2
  • + sqlite - aggiunge lo spazio dei nomi db.core e le dipendenze db SQLite
  • + postgres - aggiunge lo spazio dei nomi db.core e aggiunge le dipendenze di PostreSQL
  • + mysql - aggiunge lo spazio dei nomi db.core e aggiunge le dipendenze MySQL
  • + mongodb - aggiunge lo spazio dei nomi db.core e le dipendenze di MongoDB
  • + datomic - aggiunge lo spazio dei nomi db.core e le dipendenze Datomic

miscellaneo

  • + auth - aggiunge la dipendenza di Buddy e il middleware di autenticazione
  • + auth-jwe - aggiunge la dipendenza di Buddy con il backend JWE
  • + sidro: aggiunge il supporto per CIDER utilizzando il plug-in CIDER nREPL
  • + cljs - aggiunge il supporto [ClojureScript] [cljs] con Reagent
  • + re-frame - aggiunge il supporto [ClojureScript] [cljs] con re-frame
  • + cetriolo - un profilo per cetriolo con clj-webdriver
  • + swagger - aggiunge il supporto per Swagger-UI usando la libreria compojure-api
  • + sassc - aggiunge il supporto per i file SASS / SCSS usando il compilatore della riga di comando SassC
  • + servizio: crea un'applicazione di servizio senza lo schema di front-end come i modelli HTML
  • + war - aggiungi il supporto per la costruzione di archivi WAR per la distribuzione su server come Apache Tomcat (NON dovrebbe essere usato per le applicazioni Immutant in esecuzione su WildFly)
  • + sito: crea un modello per sito utilizzando il database specificato (H2 per impostazione predefinita) e ClojureScript

Per aggiungere un profilo basta passarlo come argomento dopo il nome dell'applicazione, ad esempio:

lein new luminus myapp +cljs

Puoi anche mescolare più profili durante la creazione dell'applicazione, ad esempio:

lein new luminus myapp +cljs +swagger +postgres


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow