Skip to content

phase 3

Filipe Freitas edited this page Mar 14, 2022 · 1 revision

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 may use text/plain, text/html or application/json 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 fulfil 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 /users must include links to each user, pointing to /users/{uid}.

  • 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 /users/{uid} must contain a link to /users.

Link graph (Click here for a bigger picture)

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

  • All representation that support paging should use a page size of 5.

Delivery

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

Clone this wiki locally