Recherche…


Créer une nouvelle application Ring avec http-kit

Ring est une API standard de facto pour les applications HTTP clojure, similaire à Ruby's Rack et WSGI de Python.

Nous allons l'utiliser avec le serveur Web http-kit .

Créer un nouveau projet Leiningen:

lein new app myapp

Ajoutez la dépendance http-kit à project.clj :

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

Ajouter :require core.clj pour http-kit à core.clj :

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

Définir le gestionnaire de demande de sonnerie. Les gestionnaires de requêtes ne sont que des fonctions allant de la requête à la réponse et la réponse est juste une carte:

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

Ici, il suffit de retourner 200 OK avec le même contenu pour toute demande.

Démarrer le serveur dans la fonction -main :

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

Exécutez avec lein run et ouvrez http://localhost:8080/ dans le navigateur.

Nouvelle application web avec Luminus

Luminus est un micro-framework Clojure basé sur un ensemble de bibliothèques légères. Il vise à fournir une plate-forme robuste, évolutive et facile à utiliser. Avec Luminus, vous pouvez vous concentrer sur le développement de votre application comme vous le souhaitez sans aucune distraction. Il a également une très bonne documentation qui couvre certains des sujets de majour

Il est très facile de commencer avec le luminus. Créez simplement un nouveau projet avec les commandes suivantes:

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

Votre serveur démarrera sur le port 3000

lein new luminus myapp créera une application en utilisant le modèle de profil par défaut. Toutefois, si vous souhaitez ajouter des fonctionnalités supplémentaires à votre modèle, vous pouvez ajouter des conseils de profil pour les fonctionnalités étendues.

Serveurs Web

  • + aleph - ajoute le support du serveur Aleph au projet
  • + jetée - ajoute le soutien Jetty au projet
  • + http-kit - ajoute le serveur Web HTTP Kit au projet

bases de données

  • + h2 - ajoute un espace de noms db.core et des dépendances H2 db
  • + sqlite - ajoute un espace de noms db.core et des dépendances SQLite db
  • + postgres - ajoute un espace de nommage db.core et ajoute des dépendances PostreSQL
  • + mysql - ajoute un espace de noms db.core et ajoute des dépendances MySQL
  • + mongodb - ajoute les dépendances de l'espace de noms db.core et de MongoDB
  • + datomic - ajoute un espace de noms db.core et des dépendances Datomic

divers

  • + auth - ajoute un middleware de dépendance et d'authentification Buddy
  • + auth-jwe - ajoute la dépendance Buddy avec le backend JWE
  • + cider - ajoute le support de CIDER en utilisant le plugin CIDER nREPL
  • + cljs - ajoute le support [ClojureScript] [cljs] avec Reagent
  • + re-frame - ajoute le support [ClojureScript] [cljs] avec re-frame
  • + concombre - un profil pour concombre avec clj-webdriver
  • + swagger - ajoute la prise en charge de Swagger-UI à l'aide de la bibliothèque compojure-api
  • + sassc - ajoute le support pour les fichiers SASS / SCSS en utilisant le compilateur en ligne de commande SassC
  • + service - créer une application de service sans la configuration frontale telle que les modèles HTML
  • + war - ajoute la prise en charge de la création d'archives WAR pour un déploiement sur des serveurs tels qu'Apache Tomcat (ne doit PAS être utilisé pour les applications Immutant exécutées sur WildFly)
  • + site - crée un modèle pour le site en utilisant la base de données spécifiée (H2 par défaut) et ClojureScript

Pour ajouter un profil, transmettez-le simplement comme argument après le nom de votre application, par exemple:

lein new luminus myapp +cljs

Vous pouvez également mélanger plusieurs profils lors de la création de l'application, par exemple:

lein new luminus myapp +cljs +swagger +postgres


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow