Clojure - Applicazioni

Clojure ha alcune biblioteche che hanno l'abilitazione per la creazione Desktop e Web-based applications. Parliamo di ognuno di loro.

Sr.No. Applicazioni e descrizione
1 Desktop - Altalena

See-saw è una libreria che può essere utilizzata per creare applicazioni desktop.

2 Desktop - Modifica del valore del testo

Il valore del contenuto nella finestra può essere modificato utilizzando il ‘config!’opzione. Nell'esempio seguente il file config! L'opzione viene utilizzata per modificare il contenuto della finestra con il nuovo valore "Good Bye".

3 Desktop - Visualizzazione di una finestra di dialogo modale

È possibile visualizzare una finestra di dialogo modale utilizzando il metodo di avviso della classe altalenante. Il metodo accetta il valore di testo, che deve essere mostrato nella finestra di dialogo modale.

4 Desktop - Visualizzazione dei pulsanti

I pulsanti possono essere visualizzati con l'aiuto della classe dei pulsanti.

5 Desktop - Visualizzazione delle etichette

Le etichette possono essere visualizzate con l'aiuto della classe label.

6 Desktop - Visualizzazione dei campi di testo

I campi di testo possono essere visualizzati con l'aiuto della classe di testo.

Applicazioni Web - Introduzione

Per creare un'applicazione web in Clojure è necessario utilizzare la libreria dell'applicazione Ring, disponibile al seguente link https://github.com/ring-clojure/ring

Devi assicurarti di scaricare i jar necessari dal sito e assicurarti di aggiungerlo come dipendenza per l'applicazione Clojure.

Il Ring framework fornisce le seguenti funzionalità:

  • Imposta le cose in modo tale che una richiesta http arrivi nella tua applicazione web come una normale Clojure HashMap, e allo stesso modo fa in modo che tu possa restituire una risposta come HashMap.

  • Fornisce una specifica che descrive esattamente come dovrebbero apparire quelle mappe di richiesta e risposta.

  • Porta con sé un server web (Jetty) e collega ad esso la tua applicazione web.

Il framework Ring può avviare automaticamente un server web e garantisce che l'applicazione Clojure funzioni su questo server. Quindi si può anche utilizzare il framework Compojure. Ciò consente di creare percorsi che è ora il modo in cui vengono sviluppate le più moderne applicazioni web.

Creating your first Clojure application - Il seguente esempio mostra come creare la tua prima applicazione web in Clojure.

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

Diamo un'occhiata ai seguenti aspetti del programma:

  • Il ‘defroutes’ viene utilizzato per creare percorsi in modo che la richiesta fatta all'applicazione Web a percorsi diversi possa essere diretta a diverse funzioni nell'applicazione Clojure.

  • Nell'esempio precedente, la "/" è nota come route predefinita, quindi quando navighi alla base dell'applicazione web, la stringa "Hello World" verrà inviata al browser web.

  • Se l'utente colpisce un URL che non può essere elaborato dall'applicazione Clojure, visualizzerà la stringa "Not Found".

Quando esegui l'applicazione Clojure, per impostazione predefinita la tua applicazione verrà caricata come localhost: 3000, quindi se navighi in questa posizione, riceverai il seguente output.

Applicazioni Web: aggiunta di più percorsi alla tua applicazione Web

Puoi anche aggiungere più percorsi alla tua applicazione web. Il seguente esempio mostra come ottenere questo risultato.

(ns my-webapp.handler
   (:require [compojure.core :refer :all]
      [compojure.route :as route]
      [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
   (GET "/" [] "Hello World")
   (GET "/Tutorial" [] "This is a tutorial on Clojure")
   (route/not-found "Not Found"))
(def app
   (wrap-defaults app-routes site-defaults))

Puoi vedere che l'aggiunta di una route nell'applicazione è facile come aggiungere un'altra funzione GET con l'URL route. (GET "/ Tutorial" [] "Questo è un tutorial su Clojure")

Se navighi nella posizione http://localhost:3000/Tutorial, riceverai il seguente output.