Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

Foreword

Foreword

FROM THE VERY START OF WHEN I GOT INVOLVED IN COMPUTING, there’s been the desire to have software systems designed as components that can be freely combined. The wide-scale connectivity of the Internet fueled this desire, and added the desire to have components operate over networks that introduce issues of latency and unknown reliability. In this world many systems have been tried, and many have failed—usually with a whimper.

A great example of success is the World Wide Web. Its success has penetrated both business operations and popular culture. It provides opportunities for people to pull together information from many sources, with hardly any prearranged collaboration—and at a global scale.

The Web, as we currently know it, isn’t the be-all and end-all of computing, but many people believe it offers an important lesson on how to construct systems of networked components. Many people take advantage of its protocol, HTTP, to connect systems. But some people think we should go further, using HTTP not as a convenient tunnel, but to embrace the way the Web works as a foundation for systems collaboration.

This thinking gathers together under the name of “REST.” It refers to Roy Fielding’s PhD thesis, which is far more often referred to than it is read. There is a growing notion that following the principles of REST offers a fruitful path to making networked components work, one that is built upon the success of the Web itself.

That vision is attractive, but there is much to be done to reach it. We have to take the principles of REST and see how to apply them to the everyday problems of systems integration. This is the task the authors of this book have taken on: to take REST from an attractive vision to implemented systems. They’ve done much to teach me about thinking in resources, how to use HTTP idioms, and the importance of hypermedia controls. As a result, this book will give you a thorough grounding in applying the core elements of RESTful thinking.

As we all should know, REST is not the answer to all questions. There are many situations where a REST approach is an appropriate approach, but many where it is not. As it’s early days in using this style for integration problems, we are still feeling our way around these boundaries. But in order to explore these boundaries properly, it’s vital to have a proper understanding of what REST is about. Without that, you run the risk of trying pseudo-REST and drawing the wrong conclusions. This book can help you avoid that fate.

—Martin Fowler

August 2010