Skip to content
Pedro Felix edited this page May 8, 2016 · 3 revisions

Phase 3

Introduction

This document describes the requirements for the third phase of the Software Laboratory project.

Requirements

HTTP Server

The main requirement for the third phase is the delivery of an HTTP server able to handle all the GET commands developed on the first and second phases. This server must use the HTTP (Hypertext Transfer Protocol) protocol to receive command requests and return their responses. The response's contents must use the text/plain or text/html formats.

Additional commands

  • The console application must also implement the additional LISTEN /, which starts the HTTP server. This command receives a port parameter containing the TCP port where the server should listen for requests.

Hypermedia

The responses for any successful request must fulfill the following requirements:

  • When the response is represented in the HTML format and contains a list, then each item must include a link to the item detail. For instance, the HTML document returned on a successful GET to /movies must include links to each movies, pointing to /movies/{mid}.

  • The responses must also contain the links required to ensure the navigability between all the resources, as defined in the following graph. For instance, the document returned on a successful GET to /movies/{mid} must contain a link to /movies.

Link graph (Click here for a bigger picture)

  • The /movies representation must include links to all the alternative sorting criteria.

  • The new /tops/ratings must include links to all /tops/{n}/ratings/... with n=5.

  • All the listing must support paging with a page size of 5.

  • All the representations must include a link to the root (home) representation.

Delivery

This project phase must be delivery until May 28 (end of week 12), via the creation of a 0.3.0 tag on the GitHub repository.

Clone this wiki locally