Soporte JSON en Java EE 8

Publicado en Java, JSON. Leave a Comment »

¿Qué es JSONassert?

JSONAssert es una pequeña librería Java que permite escribir Tests que trabajan con JSONs como si fueran Strings…para esto JSONAsseert convierte las cadenas en un objeto JSON y lo compara.

Se entiende mejor con un ejemplo:

Otra utilidad muy interesante de la librería es que muestra mensajes de error significativos, por ejemplo para:

Nos devolverá:

Para usarlo basta con usar esta dependencia:

¿Cómo sacar trazas de log en JSON en Apache y en NGINX?

Muy interesante este post de para todos los que ya vemos el JSON como el único formato! 🙂

En Apache2 es muy fácil pasar del formato por defecto

A un formato JSON como este:

Basta con editar el apache2.conf añadiendo esta línea

LogFormat "{ "time":"%t", "remoteIP":"%a", "host":"%V", "request":"%U", "query":"%q", "method":"%m", "status":"%>s", "userAgent":"%{User-agent}i", "referer":"%{Referer}i" }" leapache

en el área LogFormat:

Y luego en el default.conf referenciar al leapache:

En NGINX es aún más sencillo.

Editamos el fichero nginx.conf:

log_format le_json '{ "time": "$time_iso8601", '
 '"remote_addr": "$remote_addr", '
 '"remote_user": "$remote_user", '
 '"body_bytes_sent": "$body_bytes_sent", '
 '"request_time": "$request_time", '
 '"status": "$status", '
 '"request": "$request", '
 '"request_method": "$request_method", '
 '"http_referrer": "$http_referer", '
 '"http_user_agent": "$http_user_agent" }';
 
 access_log /var/log/nginx/access.log le_json;

Y ya traceamos en JSON.

Publicado en JSON. Leave a Comment »

MySQL 5.7 introduce el tipo de dato JSON (por fin!!!)

La versión 3.7 de MySQL por fin permite definir columnas de tipo JSON (como ya hacían Postgresql u Oracle):

El tipo de datos se define así:

ALTER TABLE people ADD COLUMN (tags json);

Se puede consultar:

SELECT name, tags FROM people LIMIT 5;

Y nos devuelve:

Permite también trabajar de forma sencilla con arrays, JSON_SET(), JSON_ARRAY_APPEND() y JSON_SEARCH():

SELECT name, tags from people WHERE JSON_SEARCH(tags, 'one', 'Lorem') IS NOT NULL;

O

UPDATE people SET profile = JSON_SET(profile, "$.first_aid", true) WHERE id = 3;

O

SELECT name, profile->"$.direct_reports" reports, profile->"$.salary" salary FROM people WHERE profile->"$.direct_reports" >= 10;

Leer más

Publicado en JSON. Leave a Comment »

Elide: Generando API REST desde Entidades JPA

Elide es una librería Java open-source que permite crear de una forma muy sencilla un JSON REST API a partir de un modelo de datos JPA en base a unas anotaciones.

Elide incluye:

  1. Acceso a entidades JPA
  2. Patch Extension Elide soporta JSON API Patch extension allowing multiple create, edit, and delete operations in a single request.
  3. Atomic Requests
  4. Autorizaciones
  5. Auditoría
  6. Extensiones
  7. Client API en Javascript

Aquí podéis ver un ejemplo de cómo usarlo.

Publicado en Java, JSON, REST. Leave a Comment »

JSON-LD y su importancia en la Web Semántica

Hace más de un año que publicamos este post sobre JSON-LD:

Aunque lentamente JSON-LD se está haciendo un hueco en el ámbito de la Web Semántica como una forma de incorporar RDF bajo una forma mucho más ligera y adecuada a las tecnologías y lenguajes actuales:

Javascript

Python

PHP

Ruby

Java

C#

Go

Leer más

Publicado en JSON. Leave a Comment »

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

A %d blogueros les gusta esto: