Clojure - Aplicaciones
Clojure tiene algunas bibliotecas contribuidas que tienen la capacidad para crear Desktop y Web-based applications. Analicemos cada uno de ellos.
No Señor. | Aplicaciones y descripción |
---|---|
1 | Escritorio - balancín
See-saw es una biblioteca que se puede utilizar para crear aplicaciones de escritorio. |
2 | Escritorio: cambio del valor del texto
El valor del contenido en la ventana se puede cambiar usando el ‘config!’opción. En el siguiente ejemplo, config! La opción se utiliza para cambiar el contenido de la ventana al nuevo valor de "Adiós". |
3 | Escritorio: visualización de un cuadro de diálogo modal
Se puede mostrar un cuadro de diálogo modal utilizando el método de alerta de la clase balancín. El método toma el valor de texto, que debe mostrarse en el cuadro de diálogo modal. |
4 | Escritorio: visualización de botones
Los botones se pueden mostrar con la ayuda de la clase de botón. |
5 | Escritorio: visualización de etiquetas
Las etiquetas se pueden mostrar con la ayuda de la clase de etiqueta. |
6 | Escritorio: visualización de campos de texto
Los campos de texto se pueden mostrar con la ayuda de la clase de texto. |
Aplicaciones web - Introducción
Para crear una aplicación web en Clojure, debe usar la biblioteca de aplicaciones Ring, que está disponible en el siguiente enlace https://github.com/ring-clojure/ring
Debe asegurarse de descargar los archivos jar necesarios del sitio y asegurarse de agregarlos como una dependencia para la aplicación Clojure.
los Ring framework proporciona las siguientes capacidades:
Configura las cosas de tal manera que una solicitud http entra en su aplicación web como un Clojure HashMap normal, y también lo hace para que pueda devolver una respuesta como un HashMap.
Proporciona una especificación que describe exactamente cómo deberían verse esos mapas de solicitud y respuesta.
Lleva un servidor web (Jetty) y conecta su aplicación web a él.
El marco Ring puede iniciar automáticamente un servidor web y garantiza que la aplicación Clojure funcione en este servidor. Entonces también se puede utilizar el marco Compojure. Esto permite crear rutas, que es ahora como se desarrollan la mayoría de las aplicaciones web modernas.
Creating your first Clojure application - El siguiente ejemplo muestra cómo puede crear su primera aplicación web en 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))
Veamos los siguientes aspectos del programa:
los ‘defroutes’ se utiliza para crear rutas para que la solicitud realizada a la aplicación web a diferentes rutas se pueda dirigir a diferentes funciones en su aplicación Clojure.
En el ejemplo anterior, la "/" se conoce como la ruta predeterminada, por lo que cuando navega a la base de su aplicación web, la cadena "Hello World" se enviará al navegador web.
Si el usuario ingresa a cualquier URL que no pueda ser procesada por la aplicación Clojure, entonces mostrará la cadena "No encontrado".
Cuando ejecuta la aplicación Clojure, de forma predeterminada, su aplicación se cargará como localhost: 3000, por lo que si navega hasta esta ubicación, recibirá el siguiente resultado.
Aplicaciones web: agregar más rutas a su aplicación web
También puede agregar más rutas a su aplicación web. El siguiente ejemplo muestra cómo lograrlo.
(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))
Puede ver que agregar una ruta en la aplicación es tan fácil como agregar otra función GET con la ruta URL. (OBTENER "/ Tutorial" [] "Este es un tutorial sobre Clojure")
Si navega hasta la ubicación http://localhost:3000/Tutorial, recibirá el siguiente resultado.