Publicado Node.js 8.0.0

Acaba de publicarse la versión 8.0.0 de Node.js.

Node.js 8 es la próxima release con LTS (Long Time Support):

Sus principales novedades son:

· Uso de última versión de npm, la 5

· Actualización del runtime Javascript V8 a la versión 5.8

· Soporte experimental a N-API, el API para crear addons nativos

· API Experimental URL sobre WHATWG URL Standard

Leer más

API Web Storage y herramientas

https://dzone.com/articles/the-beginners-guide-to-web-storage-api-and-related?edition=298007&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=dd%202017-05-06

Con Web storage nos referimos a la capacidad de los navegadores web para almacenar datos en modo key-value. En función del navegador permite almacenar de 2 a 10 MB.

Existen 2 tipos de almacenamiento:

· sessionStorage que mantiene un área de almacenamiento para cada origen y está disponible durante la duración de la session de la página. Disponible vía window.sessionStorage

· localStorage persiste incluso cuando el navedor se Cierra y se abre. Disponible vía window.localStorage properties.

Veamos como funciona:

Para guardar datos:

O:

Para recuperar datos:

Para eliminar datos.

O todos:

En DZone referencian un conjunto de librerías para trabajar con Web Storage de forma más sencilla, como webStorage, ProxyStorage, h5webstorage, react-native-storage,…

Leer más

HTTPie: una herramienta cURL-like para humanos!!!

HTTPie (aitch-tee-tee-pie) es un cliente HTTP de línea de commandos sustituto del curl.

Su objetivo principal es hacer las interacciones con Servicios HTTP más sencillas, para esto soporta JSON, highlighting, descargas wget-like, extensiones,…

Httpie es una aplicación Python, por lo que una vez instalado Python (soporta Python 2.6, aunque recomiendan Python 3.X) puedo instalarla con:

pip install –upgrade httpie

Una vez instalado podéis ejecutar el “Hello World”:

$ http httpie.org

$ http https://api.github.com/repos/stedolan/jq/commits?per_page=5

Su sintaxis es:

$ http [flags] [METHOD] URL [ITEM [ITEM]]

En su web podéis ver todas sus características: https://github.com/jkbrzt/httpie

Os puede interesar este proyecto:

HTTPie + prompt_toolkit = an interactive command-line HTTP client featuring autocomplete and syntax highlighting

https://github.com/eliangcs/http-prompt

Mi primera aplicación con StrongLoop LoopBack

LoopBack es un framework open-source (licencia MIT) para Node.js que permite crear aplicaciones de forma sencilla:

· Creación de APIS REST con un wizard CLI

· Creación de modelos

· API Explorer

· Configuración de la autenticación y autorización

· Conexión con diversos Data Stores: MySQL, Oracle, MongoDB, Postgresql, …

· SDK para Android, Java, iOS y Javascript

· Addons, por ejemplo para soportar notificaciones Push, login social,…

· StrongLoop Arc que es una UI para construir, desplegar, gestionar y monitorizar aplicaciones LoopBack

…veamos un ejemplo de cómo se usa:

1. Si aún no tenemos instalado Node.js lo primero que haremos será instalarlo (http://nodejs.org/download/ ) y comprobar que está en el PATH con:

2. Una vez tengamos Node.js podemos instalar LoopBack a través de NPM:

npm install -g strongloop

(el –g indica que que el paquete estará disponible como paquete global)

3. Una vez instalado puedo crear una aplicación LoopBak a través del interfaz de comandos (a algunos os recordará a Spring Roo :)).

Me iré a un directorio y lanzaré el comando

slc loopback

Me pedirá un nombre para mi aplicación, elegiré Api-Beers (me creará este directorio sobre el directorio actual) y:

Al acabar me aparecerá:

Y este código:

4. Tras esto me iré al directorio y configuraré un DataSource para conectar con Mongo:

slc loopback:datasource

Al acabar el comando puedo ir al fichero server/datasources.json y revisar la configuración:

5. Ahora crearé mi modelo con:

slc loopback:model

En common/models/beer.json podemos ver la definición del modelo:

6. Y sin más ya puedo ejecutar la aplicación:

slc run

En http://localhost:3000/explorer puedo acceder al API REST:

¿Qué es Jaggery?

Jaggery es un framework con licencia Apache 2.0 para escribir aplicaciones y servicios Web completas:Front-end, comunicación, lógica en Servidor y persistencia, todo ello en Javascript.

Las aplicaciones Jaggery se despliegan sobre el Jaggery Server (un Servidor Java construido sobre WSO2 Carbon Runtime), y ofrece una consola que permite desplegar y gestionar aplicaciones Jaggery:

También ofrece una CLI para desplegar apps vía línea de comandos.

Entre sus herramientas tenemos un Editor para IntelliJ y un Debugger sobre Rhino Javascript Debugger: http://jaggeryjs.org/tools.jag

Para probarlo lo mejor es echar un ojo a sus demos.

¿Qué es PAC4J?

http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html

pac4j es un motor de Seguridad Java con licencia Apache 2 para autenticar, autorizar, obtener profile,… en cualquier aplicación web Java.

Pac4J está disponible para un gran número de frameworks: J2E, Spring Web MVC / Spring Boot, Play 2.x,Vertx, Spark, Java, Ratpack, Undertow, Jooby, Apache Shiro, Spring Security, CAS servery Knox (Hadoop)

Y soporta casi cualquier mecanismo de autorización/autenticación que se os ocurra:

De hecho pac4j ofrece unas guías para integrarlo con tu framework en sus guidelines.

Los conceptos principales de pac4j son:

1) Un client que representa un mecanismo de autenticación. Realiza el login y devuelve un profile. Hay clientes indirectos para autenticación UI y clientes directos para autenticación Web Service.

2) Un authorizer que realiza las autorizaciones sobre el profile del usuario o en el contexto web actual.is meant to check authorizations on the authenticated user profile or on the current web context

3) El "security filter" (u otro mecanismo para interceptar peticiones HTTP) que protege una URL comprobando si el usuario está autenticado y tiene permisos.

4) El "callback controller" que finaliza el proceso de autenticación para un cliente indirecto.

En este tutorial nos explican cómo autenticar con Facebook, Twitter o Google con pac4j de forma muy sencilla: http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html