Articles Tagged ‘json’
Friday, August 31st, 2018
The OpenAPI and Swagger API description format are becoming important standards to specify API contracts for RESTful web services and the Microservices trend pushes the need for such contracts even further.
Therefore arises the need for software architects, testers and developers to write tests to verify if an exposed API follows such a specified contract.
In the following tutorial I will demonstrate a setup with Java, Maven, JUnit and the designated contract-testing-library, assertj-swagger that verifies the validity of such a contract exposed by a Spring Boot application against a local stored definition.
(more…)
Tags: Api, contract, contract-driven, failsafe, json, junit, maven, openapi, rest, schema, spring-boot, springfox, surefire, swagger, testing, yaml
Posted in Java, Web Services, testing | No Comments »
Thursday, April 6th, 2017
There is a new testing framework out there called Karate that is build on top of the popular Cucumber framework.
Karate makes it easy to script interactions with out web-services under test and verify the results. In addition it offers us a lot of useful features like parallelization, script/feature re-use, data-tables, JsonPath and XPath support, gherkin syntax, switchable staging-configurations and many others.
In the following tutorial we’ll be writing different scenarios and features for a real-world RESTful web-service to demonstrate some of its features.
(more…)
Tags: attd, bdd, cucumber, feature, http, Java, javascript, json, junit, karate, rest, restful, scenario, soap, tdd, testing, xml
Posted in Java, Web Services, testing | 4 Comments »
Sunday, January 29th, 2017
When it comes to web-services (especially RESTful web-services), configuration files or other data-descriptors, the JavaScript Object Notation, short: JSON is often used as format of choice.
As the task arises to transform these JSON structures, I have seen a variety of different approaches from converting JSON into XML using JAX-B, applying XSLT, transforming into JSON again on the one hand to loading JSON structures into Hash-maps of Hash-maps (..) and manually removing single elements from these collections on the other hand.
JOLT is a library to make this task easier for us: It allows us to note down different types of transformations in a specification file in JSON syntax and to apply this specification to given JSON structures with ease.
In the following short tutorial I’d like to demonstrate how to use this library by transforming JSON structures programmatically with a few lines of code, by filtering a RESTful web-service using JOLT and a servlet filter and finally by adding a short example using the Apache Camel framework.
(more…)
Tags: camel, eip, filter, jolt, json, servlet, xslt
Posted in Java | 6 Comments »
Thursday, October 22nd, 2015
For us developers there plenty of libraries exist helping us in deriving and generating clients for existing RESTful web-services and I have already covered some of the in this blog (e.g. the JAX-RS Client API). Nevertheless, I’d like to share my experience with another interesting lightweight library here: Netflix Feign.
Feign offers a nice fluent-builder API, a rich integration for common libraries and APIs like JAX-RS, Jackson, GSON, SAX, JAX-B, OkHttp, Ribbon, Hystrix, SLF4J and more and last bot not least, it is setup easy and the service contracts are specified using interfaces and annotations.
In the following tutorial I’d like to demonstrate how to derive a service binding from a simple, JAX-RS based RESTful web-service, how to create the service adapter using the integrated builder and at last, performing CRUD operations.
(more…)
Tags: client, feign, gson, jackson, jax-b, jax-rs, jaxb, jaxrs, json, netflix, rest, restful, retrofit, sax, webservice, webservices
Posted in Java, Web Services | 1 Comment »
Wednesday, July 1st, 2015
Spring Boot allows us to create RESTful web-services with ease, Swagger specifies a format to describe the capabilities and operations of these services and with Swagger UI it is possible to explore our REST API with a nice graphical user interface in our browser.
Springfox is a project that aims at creating automated JSON API documentation for API’s built with Spring and is used in the following tutorial to integrate Swagger into a sample application.
(more…)
Tags: Api, documentation, gradle, json, rest, restful, schema, spring, spring-boot, springfox, swagger, swagger-ui, webservices
Posted in Java, Web Services | 11 Comments »
Tuesday, June 16th, 2015
A variety of different tools exists to help us analyze RESTful web-services and create documentations for their APIs in different formats.
In the following tutorial I’d like to demonstrate how to document an existing JAX-RS web-service in multiple formats like Swagger, AsciiDoc or Plain Text using Maven, the JAX-RS Analyzer and the JAX-RS Analyzer Maven Plugin.
The JAX-RS Analyzer gathers its information not only by reflection like most other tools but also by bytecode analysis and therefore does not require us to add special annotations for documentation to our code.
(more…)
Tags: Api, asciidoc, documentation, jax-rs, jaxrs, json, maven, rest, restful, swagger, webservice, ws
Posted in Enterprise, Java, Web Services | No Comments »
Sunday, May 3rd, 2015
Nowadays in the realm of hybrid mobile application development there is a variety of available frameworks worth having a look at.
In the following tutorial I’d like to demonstrate the development life-cycle for a complete mobile application using Ionic, Cordova and AngularJS (and others) covering every step from the initial project setup, creating Angular Controllers, Directives, adding Cordova Plug-Ins, running and testing the application in the browser and emulator up to finally running the application on an Android device and assembling files for a release.
Finally I’d like to show some special features from the Ionic ecosystem like the Ionic Cloud and running our applications using the IonView app.
(more…)
Tags: ajax, Android, angular, angularjs, controller, cordova, cors, directive, emulator, gulp, hybrid, ionapp, ionic, ionview, ios, javascript, js, json, logcat, mobile, npm, sop
Posted in Android, Apps, Development | 7 Comments »
Sunday, April 26th, 2015
Using immutable objects in Java (and other programming languages as well) is a good thing because immutable objects may be shared safely, are thread-safe and reduce the risk of side effects in your applications.
Nowadays multiple frameworks exist to reduce the need of writing boilerplate code here but there is one special framework whose features I’d like to demonstrate in the following short tutorial.
It hooks into your application using annotation processing and generates type-safe builders, toString, hashCode, equals methods for you, supports lazy attributes, singleton instances, serialization into data-formats like JSON and a lot of other features,too.
(more…)
Tags: builder, equals, hashcode, helper, immutability, immutable, json, lazyness, singleton
Posted in Java | No Comments »
Sunday, November 9th, 2014
Having written two articles about different websocket based chat server implementations in Java, I was recently asked how an implementation of the client side would look like in Java.
That’s why I added this article to demonstrate how to create a websocket chat client applications within a few steps with the Java API for Websocket.
In the following tutorial, we’re going to write a text-based chat client for the console first and afterwards we’re going to program a chat client with a graphical user interface, implemented in JavaFX.
(more…)
Tags: chat, client, fxml, glassfish, java fx, javafx, json, jsr-353, jsr-356, maven, websocket, websockets
Posted in Java, Web | 14 Comments »
Sunday, September 28th, 2014
Because a lot of my current projects are using JAX-RS in different versions I’d like to write down and share some frequently used snippets for implementing RESTful web-services with the JAX-RS specification here.
(more…)
Tags: jackson, javaee, jax-rs, jaxrs, jersey, json, rest, Snippet, xml
Posted in Java, Web Services, XML | No Comments »
Tuesday, August 26th, 2014
There are several ways to aggregate and report application performance indicators in a Java application. One common way here is to use Java Management Extensions (JMX) and MBeans.
The Yammer Metrics Library eases this task for us and simplifies the aggregation of different reports.
In the following tutorial, we’re going to set up a full Java EE 7 web application by the help of Maven archetypes and we’re running the application on WildFly application server that is downloaded and configured completely by the WildFly Maven Plugin.
Finally our application is going to use the Java API for JSON Processing to parse lists of public repositories from the Bitbucket REST API to aggregate different reports, exported via JMX so that we’re finally able to view these reports with jconsole or jmeter.
(more…)
Tags: benchmark, bitbucket, discovery, gauge, glassfish, javaee, javaee7, jconsole, jmeter, jmx, json, jsonp, mbean, metrics, metrics-cdi, monitoring, performance, producer, wildfly, yammer
Posted in Enterprise, Java, Web | 7 Comments »
Thursday, July 31st, 2014
I have written about other database migration frameworks before but in this article I’d like to cover the Liquibase framework in combination with WildFly as Java EE 7 compatible application server.
In the following tutorial, we’re going to write a full Java EE 7 book store application with a few steps and with Liquibase on board to create the database structure and insert example data into the database.
Thanks to the WildFly Maven Plug-in we even do not need to download and configure the application server but let Maven and the plug-in do the work for us.
(more…)
Tags: application server, as, curl, db, dbmigrate, ejb, entitymanager, h2, javaee, javaee7, jax-rs, jaxrs, jee, jpa, json, liquibase, migration, persistence, rdbms, rest, wildfly
Posted in Enterprise, Java, Web, Web Services | 3 Comments »
Wednesday, October 16th, 2013
MongoDB is matured, document-oriented, cross-platform NoSQL database system with drivers available for a bunch of different programming languages.
In the following short examples I’m going to write some integration tests for MongoDB using the MongoDB Java driver and the Flapdoodle library to create an embedded MongoDB instance for testing.
We’re going to write tests for a simple persist-and-query scenarion and for a map-reduce function and in addition I’m going to show how to bind the start and stop of a MongoDB instance to a Maven goal using the embedmongo-maven-plugin.
(more…)
Tags: bson, flapdoodle, integration test, Java, json, map-reduce, maven, mongodb, nosql, testing
Posted in Java | 1 Comment »
Tuesday, August 13th, 2013
Java EE 7 is out now and so I was curious to play around with the new specifications and APIs from in this technology stack.
That’s why I didn’t hesitate to add yet another websocket-chat tutorial to the existing ones on the internet in favour of gathering some experience with this technology and a possible integration using a GlassFish 4 server, the new Java API for JSON Processing for data serialization combined with custom websocket encoders/decoders and finally adding some Bootstrap and jQuery on the client side.
(more…)
Tags: bootstrap, chat, client, encoder, glassfish, grizzly, html5, Java, javaee, javascript, json, json-p, websocket, websockets
Posted in Enterprise, Java | 65 Comments »