dominoGuru.com

Your Development & Design Resource

RESTful Java Web Services from Pack Publishing - First Impressions

RESTful 
Java Web Services from Pack Publishing REST theory and RESTful services, or REpresentational State Transfer, is a set of constraints that define a software architectural style. Simply put, it is a practice of leveraging HTTP Request Methods to interact with a data store. This approach greatly differs from simple CRUD - which we IBM Lotus Notes/Domino Web Application Developers are familiar. Where CRUD relies mostly on GET/POST Methods, RESTful Web Services leverage GET, POST, PUT, and DELETE to maintain remote data stores. REST, of course, sounds better than GPPD... but in summary that's pretty much it!

RESTful Java Web Services from Pack Publishing deep-dives into REST constraints, and applying that to Java Web Service Architectures in web application development.

You can read many different reviews of this book, but this review will be written with a mind for this site's target audience: IBM Lotus Notes/Domino Developers!

Chapter 1: RESTful Architectures

This chapter focuses on defining REST or RESTful architectures and their CRUD equivalent (table from Chapter 1):

Data Action HTTP Protocol Equivalent
Create POST
Retrieve GET
Update PUT
Delete DELETE

What I liked about this chapter is that it immediately began a deep-dive into the topic with very simple yet telling examples of each state of REST. Most books take the first chapter to give a history of the subject matter and save the meat of the content for Chapter 2. By the time we get to Chapter 2, we have not only covered that brief history, but we have a pretty decent understanding of REST and RESTful architectures via this chapter.

Chapter 2: Accessing RESTful Services - Part 1

I was happy to see that this chapter's for those of you following along at home example was the Twitter REST API. It's not some abstract service that exists solely for the purpose of this book; we know exactly what is expected when interacting with this micro-blog service, and thus can concentrate on and level-check our progress in learning about REST.

This chapter starts off by gearing you up. You're directed to the latest Java JDK, Jakarta's Commons HTTPClient, Commons Logging, and Commons Codec packages, Apache Tomcat, and Swing's Application Framework and SwingWorker.

For old-hand Java Developers, this should be a no-brainer. However, there really aren't many directions for setting up these downloadable wares. Of course, that's pretty out of scope for this book, but be forewarned that it can take some time to download and setup these applications.

The rest of the chapter discusses the Twitter API and interacting with the XML (either XML, JSON, RSS, or ATOM) and Servlets.

By the time you're done reading this chapter, you're either hooked or running away scared. Hopefully, you're ready for Part 2 ;-)

Chapter 3: Accessing RESTful Services - Part 2

With this chapter, you're going to be interacting with several different public web services: Google, Yahoo!, Twitter, and TextWise's SemanticHacker to create a localhost mashup using Prototype.

The chapter's build project, named the Semantic search mashup, is a pretty slick hello world v2.0 application... but while it's well documented in this chapter, I worry that it's a little too complex for non-Java developers.

Of course, if I was able to follow it, you should be able to as well...

And, as with most Pack Publishing titles, the pages of markup and code are available through download on the publisher's site -- really helps when you're dealing with a case-sensitive language and especially if you're unsure about what you're doing up to this point!

By the end of this chapter, you'll have a single application that will run queries against several public web services, consume the HTTP Request responses, and then parse and display the results. Sure, it's not too pretty, but it's functional! And it gives you an idea of the Retrieve capabilities of RESTful architectures.

Chapter 4: RESTful Web Services Design

This chapter's build project (if you will) is:

a social networking web application similar to Twitter.

Again, I get it: go with what you know, so you can focus on learning the technology versus trying to learn about project scope and overall function.

And don't worry, you're not diving that deep here - this chapter really talks to using URIs (via HTTP Method calls) to interact with data. At the end of the chapter, you should understand the action/reaction exchange with Web Services.

First Impressions Conclusion

With talk of moving beyond RAD, this book in 4 chapters fully-illustrates the need to move application/business logic out of the UI context. Web Services talks to web and cloud services -- sure -- but it can be directly applied to our own IBM Lotus Notes/Domino application development practices. It's simple OOP!

After reading these 4 chapters, I'm eager to consume the next 6... but I'm not too sure that I would recommend this book for everyone just yet: remember, I'm reviewing this book with an eye to IBM Lotus Notes/Domino Developers, not Java Developers. Thus some of the topics discussed in the book in future chapters might not apply to our world... so I'll reserve judgement until I'm finished.

And, like my last Pack Publishing review, I plan on holding a contest/giveaway of my review copy, so stay tuned for the complete review and information on how you can win my copy of Pack Publishing's RESTful Java Web Services!


About the author: Chris Toohey

Thought Leadership, Web & Mobile Application Development, Solutions Integration, Technical Writing & Mentoring

A published developer and webmaster of dominoGuru.com, Chris Toohey specializes in platform application development, solutions integration, and evangelism of platform capabilities and best practices.



More from dominoGuru.com


dominoGuru.com is powered by IBM Notes Domino XPages & hosted by Prominic.NET

Contact Us

Use our Contact / Feedback form or one of these email addresses:

Creative Commons License

Except where otherwise noted, dominoGuru.com by Chris Toohey is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.