Assignment 2
The assignment shall be solved individually or in groups of maximum 2 students.
The purpose of this assignment is to familiarize the students with RESTful Web Services.
Your task is to implement a RESTful service and a (set of) client(s) that manages a simple library. The library contains a set of books. Each book has a title, author, and an ISBN. Furthermore, each book is in (exactly) one genre. The information kept about the users of the library include their name, email address, and library card number. Your library service should support the following operations:
- Add a new user.
- Remove a user.
- Lend a book to a user. As a constraint, a user may at no time have borrowed more than five books.
- Return a book borrowed by a user to the library.
- Search for a book by its title.
- Search for a book by its ISBN.
- Search for books by a certain author.
- Search for books in a certain genre.
You are free to use any programming language and/or toolkit, as long as your service adheres to the REST principles. Technical assistance from the teachers may however be somewhat limited for languages and tools that we never have used (or heard of).
Examination
Hand in a report containing the following:
- The information required to use (that is, download, compile and run) your service.
- A description of the resource types that are used in your service.
- Documentation of your API. Which of the PUT, POST, GET, and DELETE operations are applicable for your resource types? What are the semantics of the respective operations? Which HTTP return codes are used?
- An overview of the architecture of your service and a reasonable detailed description of its implementation.
- An at least one page (12 pt text, single spacing) discussion about the respective benefits and drawbacks of SOAP and REST. Your arguments should be based on technical considerations and/or supported by references. In the conclusion of your discussion, state whether you prefer SOAP or REST, and motivate why.
- Your source code.