Resources and URIs

A Resource-Oriented Architecture (ROA) is a software architecture based on REST web services, using resources addressable by its URIs:

Resource

A Resource is anything that’s important enough to be referenced as a thing in itself. Something that can be stored on a computer and represented as a stream of bits: a document, a row in a database, or the result of running an algorithm.

For instance, the data of the book “Software in 30 days” stored on a computer, is a resource.

The data of the book "Software in 30 days".
Example of a resource

URI

URI: Uniform Resource Identifier. The URI is a string of characters used to identify a resource. It is the name and address of a resource. It should be descriptive, should have a structure, and should vary in predictable ways.

A URI designates exactly one resource:

http://www.domain.com/books/agile/software-in-30-days
A URI for the resource of the book “Software in 30 days”

A resource may have one URI or many:

http://www.domain.com/books/agile/software-in-30-days
http://www.domain.com/books/scrum/software-in-30-days
http://www.domain.com/books/software-in-30-days
http://www.domain.com/books/id=123456789
Different URIs for the same resource

When different URIs designate the same resource, one of them is named the canonical URI for that resource, and after a request for it is received, the server sends a 200 (“OK”) code in the response. With the other ones, the server sends a 303 (“See Also”) along with the canonical URL.

These Notes have been taken from:

Leave a Reply

Your email address will not be published. Required fields are marked *