A RESTful web service testbed - No Fluff Just Stuff

A RESTful web service testbed

Posted by: Brian Gilstrap on January 5, 2010

It's time to build a more complete RESTful service example. In this web service, we'll aim to perform all the common activities of a real service. This is often referred to by the acronym CRUD, which stands for Create, Read, Update, and Delete for all of the common operations associated with persistent data. Since we're dealing with a RESTful web service, we'll also throw in multiple representations for a resource, and connectedness to make it easy for clients to navigate through the service resources.

So, what should our service do? My friend and colleague, Mark Volkmann, introduced the eample of a database of music information. In this example, the service service contains information about several kinds of resources:
  • Music artists (Artists)
  • Albums
  • Songs
This is a nice example because it is rich enough to expose many of the problems that need to be solved by RESTful web service without becoming so large that it's unwieldy to explore. The domain model is immediately familiar, so we can focus on the technologies and not the model.

With this service we can explore not only traditional browser-based HTML, but XML and even an Ajax client using JSON. We can also use it as testbed for things like caching, security, clustering/failover, and composition of services.
Brian Gilstrap

About Brian Gilstrap

Brian Gilstrap is a Principal Software Engineer at Object Computing, Inc. where he has spent the last eleven of his 20+ years in the industry. In those years, he has worked with many languages and many technologies. He writes and blogs frequently, and has been on the steering committee of the St. Louis Java User's Group more than a decade. With OCI he provides consulting to companies in many industries and countries, and develops & delivers training courses for Washington University's Center for Applied Information Technology.

Brian has a passion for building software that is easy to use and robust while still meeting the rapid development requirements in today's industry. He has expertise in distributed systems, object oriented analysis and design, secure computing, and many languages and frameworks.

Why Attend the NFJS Tour?

  • » Cutting-Edge Technologies
  • » Agile Practices
  • » Peer Exchange

Current Topics:

  • Languages on the JVM: Scala, Groovy, Clojure
  • Enterprise Java
  • Core Java, Java 8
  • Agility
  • Testing: Geb, Spock, Easyb
  • REST
  • NoSQL: MongoDB, Cassandra
  • Hadoop
  • Spring 4
  • Cloud
  • Automation Tools: Gradle, Git, Jenkins, Sonar
  • HTML5, CSS3, AngularJS, jQuery, Usability
  • Mobile Apps - iPhone and Android
  • More...
Learn More »