Skip to Content
RESTful Java with JAX-RS 2.0, 2nd Edition
book

RESTful Java with JAX-RS 2.0, 2nd Edition

by Bill Burke
November 2013
Intermediate to advanced
392 pages
8h 59m
English
O'Reilly Media, Inc.
Content preview from RESTful Java with JAX-RS 2.0, 2nd Edition

Chapter 27. Examples for Chapter 13

In Chapter 13, you learned how clients can invoke HTTP requests in the background. You also learned how the server side can detach response processing from the original calling thread with an AsyncResponse. In this chapter, we’ll use both of these features to implement a customer chat service.

Example ex13_1: Chat REST Interface

Before we dive into code, let me explain the REST interface for our chat service. The service will share a URL to both send and receive chat messages. The service will work much like Twitter in that if one user posts a chat, anybody listening for chats will see it. Posting a chat is a simple HTTP POST request. Here’s an example request:

POST /chat HTTP/1.1
Host: localhost:8080
Content-Type: text/plain

Hello everybody

As you can see, all the user has to do is post a simple text message to the /chat URL and messages will be sent to all listeners.

To receive chat messages, clients will make a blocking GET request to the chat server:

GET /chat HTTP/1.1
Host: localhost:8080

When a chat becomes available, this GET request returns with the next chat message. Additionally, a next Link header is sent back with the HTTP response:

HTTP/1.1 200 OK
Content-Type: text/plain
Link: </chat?current=1>; rel=next

Hello everybody

We do not want the chat client to lose any messages while it is processing a response. The next link is a placeholder into the list of messages that are posted to the server. After displaying the chat message, the client will ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Java 8 in Action

Java 8 in Action

Alan Mycroft, Mario Fusco, Raoul-Gabriel Urma
Spring Microservices in Action, Second Edition

Spring Microservices in Action, Second Edition

John Carnell, Illary Huaylupo Sanchez

Publisher Resources

ISBN: 9781449361433Errata Page