Book Image

Building RESTful Web Services with Java EE 8

By : Mario-Leander Reimer
Book Image

Building RESTful Web Services with Java EE 8

By: Mario-Leander Reimer

Overview of this book

Java Enterprise Edition is one of the leading application programming platforms for enterprise Java development. With Java EE 8 finally released and the first application servers now available, it is time to take a closer look at how to develop modern and lightweight web services with the latest API additions and improvements. Building RESTful Web Services with Java EE 8 is a comprehensive guide that will show you how to develop state-of-the-art RESTful web services with the latest Java EE 8 APIs. You will begin with an overview of Java EE 8 and the latest API additions and improvements. You will then delve into the details of implementing synchronous RESTful web services and clients with JAX-RS. Next up, you will learn about the specifics of data binding and content marshalling using the JSON-B 1.0 and JSON-P 1.1 APIs. This book also guides you in leveraging the power of asynchronous APIs on the server and client side, and you will learn to use server-sent events (SSEs) for push communication. The final section covers advanced web service topics such as validation, JWT security, and diagnosability. By the end of this book, you will have implemented several working web services and have a thorough understanding of the Java EE 8 APIs required for lightweight web service development.
Table of Contents (8 chapters)

Easy data binding using JSON-B

In this section, we're going to take a look at using JSON-B for marshalling and unmarshalling of your JSON and POJO data structures, how you can use JSON-B annotations on POJOs such as @JsonbProperty, @JsonbNumberFormat, @JsonbDateFormat, @JsonbTransient, and @JsonbPropertyOrder, and finally how you can explicitly create JsonbConfig and Jsonb instances using JsonbBuilder.

Let's get started and switch to code. We will create a JsonResource class. This is our basic REST resource and we want to implement our basic methods that return JSON structures from a POJO and that unmarshall our POJO from JSON structures.

The first bit is easy; first up, we're implementing a basic @GET method. We call it marshall and it returns a JsonbPojo. JsonbPojo is a plane POJO object: it's a plane class. We'll use the @Produces application for JSON...