MockBin: Mocks de Endpoints REST

Continuando con el post de ayer dedicado a APIembed hoy:

Mockbin es una herramienta que Mashape acaba de hacer open-source y que permite de forma sencilla generar a medida endpoints para testar y moquear peticiones y respuestas HTTP entre APIs, librerías,…

Sus principales características son:

· Los Endpoints se crean usando un HTTP Archive (HAR) response object

· Soporta todos los verbos HTTP

· Soporta salidas en JSON, XML, YAML y HTML

· Genera headers CORS

Podéis ver un ejemplo invocando a esta URL:

http://mockbin.com/request?foo=bar&foo=baz

Que en Java por ejemplo se invocaría así:

O con curl:

Los MockBin se generan desde la propia web: https://mockbin.com/bin/create introduciendo un conjunto de parámetros:

Una vez creado nos dará un identificador y la forma de invocarlo:

https://mockbin.com/bin/950ef8eb-cb24-4832-bd4f-838106ffc775/view

Así como ejemplos (APIembed) para diferentes lenguajes:

APIembed: generando código de invocación a nuestros Servicios REST de forma sencilla

APIembed es un portal web desarrollado por Mashape que permite generar un widget HTML con el código para invocar a Servicios REST en una gran variedad de lenguajes, algo como:

Para generar el código de invocación basta con crear el HAR Request object que sirve para describir el formato de la petición HTTP.

El HAR tiene este formato:

Un ejemplo:

https://apiembed.com/sample.json

{

“method”: “POST”,

“url”: “http://mockbin.com/request”,

“httpVersion”: “HTTP/1.1″,

“queryString”: [

{ “name”: “foo”, “value”: “bar” },

{ “name”: “foo”, “value”: “baz” }

],

“headers”: [

{ “name”: “Accept”, “value”: “application/json” },

{ “name”: “Content-Type”, “value”: “application/json” }

],

“cookies”: [

{ “name”: “foo”, “value”: “bar” },

{ “name”: “bar”, “value”: “baz” }

],

“postData”: {

“mimeType”: “application/json”,

“text”: “{“foo”: “bar”}”

}

}

Una vez lo tenemos desde la web: https://apiembed.com indicamos:

· Source: url al HAR

· Targets: lenguajes de generación

Y nos generará el código del iFrame a insertar en nuestra APP Web:

//api.apiembed.com/?source=https://apiembed.com/sample.json&targets=shell:curl,node:unirest,java:unirest,python:requests,php:curl,ruby:native,objc:nsurlsession,go:native

¿Qué es JHipster?

JHipster es una herramienta que merece la pena ser conocido ya sólo por su nombre y logo, ¿verdad? :)

JHipster es una herramienta de generación basada en Yeoman generator


para generar aplicaciones Web Spring Boot + AngularJS .

Las aplicaciones web que se generan se basan en este stack:

Aplicación Single Web Page:

· Responsive Web Design

Flujo Yeoman:

And what if a single Web page application isn’t enough for your needs?

Technology stack on the server side

Una aplicación completa Spring sobre:

· Spring Boot para configuración sencilla

Adicionalmente:

· Monitorización con Metrics

  • Cacheo con ehcache (local cache) o hazelcast (distributed cache)
  • Opcional clustering de session HTTP con hazelcast
  • Optimized static resources (gzip filter, HTTP cache headers)
  • Logs con Logback, configurable en runtime
  • Pooling con HikariCP para rendimiento óptimo
  • Construye un WAR estándar o un JAR ejecutable

Así una aplicación generada tiene este aspecto:

Formulario

Monitorización:

Configuración Log:

En este videocast podéis verlo en funcionamiento https://www.youtube.com/watch?v=fbEnchNPHSc

Un poco de Pulsar CEP

eBay acaba de liberar bajo licencia Apache 2 Pulsar.

Sus creadores lo definen así:

Pulsar es un es plataforma para el procesamiento de streams y analítica en tiempo real. Pulsar puede usarse para recolectar y procesar eventos de usuario y de negocio en tiempo real y para generar métricas y agregaciones sobre ventanas temporales todo esto siguiendo un lenguaje SQL-like.

Pulsar escala a millones de eventos por segundo en alta disponibilidad, se integra fácilmente con strores como Cassandra.

(Vamos lo que de toda la vida se define como un CEP :D)

Pulsar fue creado con estos objetivos:

· Escalabilidad: escalando a millones de eventos por segundo

· Latencia: procesamiento y entrada en órdenes menores de segundo

· Disponibilidad: sin caída del cluster durante actualización del software, actualización de las reglas y cambios en la topología

· Felxibilidad: facilidad para definir y cambias la lógica de procesamiento, ruteado de eventos, topologís

· Productividad: soporte para CEP y un lenguaje 4GL para filtrado de datos, agregación y procesamiento stateful

· 99,9% Data Delivery

· Despliegue en Cloud: los nodos pueden distribuirse entre data centers

FLUJO:

El flujo de Pulsar consiste en varios estados no acoplados.

Los eventos se transportan de forma asíncrona entre el pipeline lo que simplifica la escalabilidad permitiendo que cada estado pueda construirse y operarse de forma independiente.

LENGUAJE DE CONSULTAS:

Al estilo de los CEPs más tradicionales Pulsar ofrece un lenguaje de consultas SQL-like:

DESPLIEGUE:

La lógica CEP de Pulsar se despliega en diversos nodos (CEP cells = celda CEP), cada celda CEP se configure con un canal de entrada, un canal de salida y una lógica de proceso.

Los eventos se particionan por una clave (usuario por ejemplo) de modo que todos los eventos con una misma clave se rutean a la misma celda CEP.

En cada estado los eventos pueden particionarse por una clave diferente permitiendo agregación en varias dimensiones:

Con esta arquitectura para escalar a más eventos simplemente tengo que meter más celdas CEP.

Pulsar CEP usa Apache ZooKeeper para detectar nuevas celdas y rebalancear el tráfico, de la misma forma si una celda se cae Pulsar reenruta el tráfico a otros nodos…

Pulsar CEP soporta varios modelos de mensajería entre estados, pudiendo elegir modelo Push o Pull. Pulsar permite persistir los eventos en Kafka para garantizar el procesado.

Opinión:

Pulsar CEP resulta una solución muy interesante en el ámbito “Real Time Big Data”, se me ocurren diversos escenarios de uso:

· los que hayáis usado Storm habréis echado en falta un lenguaje estilo SQL para procesar los streams (algunos hasta hemos integrado un CEP con Storm)

· los que necesitéis un CEP con licencia Apache (y no GPL como Esper) hasta ahora teníais poca elección: Siddhi CEP

Pentaho report designer: una solución para crear informes a partir de mongodb

Originalmente publicado en Blog Sofia2:

Pentaho Report Designer(PRD) es una herramienta de reporting fácil de utilizar y con multitud de aplicaciones. Los informes que genera se dividen en secciones o grupos de datos en los que los elementos del informe pueden ser posicionados. Esta forma de trabajar tiene algunas limitaciones, que se pueden superar con el uso de subinformes.

Pentaho Report Designer nos permite trabajar con múltiples orígenes de datos. (JDBC, Olap4J, Pentaho Analysis, Pentaho Data Integration, XML) incluido el metadata que tengamos definido en nuestro sistema. En particular y para este ejemplo vamos a utilizar una colección de MongoDB. El resultado de los informes que hemos diseñado se puede ver con las opciones de previsualización, y nos permite la salida de resultados en diferentes formatos como PDF, HTML, XLS, RTF y CSV.

Para realizar un informe necesitamos:

  • MongoDB: Necesitaremos que esté arrancada la base de datos y saber la dirección y el puerto.
  • Kettle:

Ver original 353 palabras más

Comparación de API Automation Tools: Apache UserGrid vs WSO2 API Manager

El equipo de acaba de publicar una comparación de varias herramientas para el desarrollo automatizado de APIs.

De entre las seleccionadas en el estudio:

· Apache UserGrid version 1.1.0

· WSO2 API Manager version 1.8.0

· Cumulocity (SaaS)

· MuleSoft API Gateway version 3.5

· StrongLoop Server version 2.0

Finalmente se seleccionan Apache UserGrid y WSO2 API Manager para un studio más detallado, resultando en:

“If you are building an API-based project on Cloud Foundry from scratch and the community edition of Cassandra satisfies your requirements, Apache UserGrid will be a great choice. It can help you to save resources by automating development and support of the backend, including data storage management. Unlike WSO2, Apache UserGrid has its own PaaS platform that provides API automation, e.g. API methods are generated for each object you create. Paid and limited free accounts are available. In addition, UserGrid supports Apache Tomcat, while WSO2 API Manager uses WSO2 Application Server. If the existing limitations of Apache UserGrid are critical, you should take a closer look at WSO2 API Manager.”

JetBrain WebStorm: por fin un IDE Javascript en condiciones!!!

JetBrains WebStorm es el IDE para Javascript desarrollado por JetBrains (los mismos del IntelliJ).

Es un IDEA que permite el desarrollo de capa cliente en JS pero también de la capa servidor con Node.js, de hecho ofrece soporte para todas estas tecnologías.

La falta de un gran IDE Javascript (y las herramientas de navegador no lo son, y los plugins de Eclipse no lo son) siempre ha sido una deficiencia para el desarrollo de Javascript, y además no lograba entender el motivo!!!

Si WebStorm es la mitad de la mitad de lo bueno que es el IntelliJ sin duda que merece la pena! (yo lo pongo en mis lista de TODOS!!!…actualizado…

Ya he hecho una prueba básica…he importado unos HTMLs + JS que tenía en mi local (y no precisamente sencillos), he puesto a depurar el proyecto, me ha pedido instalar el JetBrains IDE Support:

Y voilá…aquí estamos depurando Javascript al estilo Java!!!

Si os ha interesado podéis echar un primer vistazo aquí: https://www.jetbrains.com/webstorm/quickstart/

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 587 seguidores

A %d blogueros les gusta esto: