REST and Hypermedia

From NovaOrdis Knowledge Base
Revision as of 01:01, 25 October 2018 by Ovidiu (talk | contribs) (→‎Media Type)
Jump to navigation Jump to search

External

Internal

Resource

Representation

Universal Resource Locator (URL)

Universal Resource Locator

Universal Resource Identifier (URI)

Universal Resource Identifier

Representational State Transfer (REST)

RWA page 32

Multipurpose Internet Mail Extension (MIME)

MIME is an internet standard that extends the format of e-mail to support text in character sets other then ASCII, non-text attachments, such as audio, video, images, application programs, etc., message bodies with multiple parts and header information in non-ASCII characters sets. MIME is specified in six linked RFCs: RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289 and RFC 2049.

MIME is relevant to HTTP. The content types define by MIME are used in the definition of HTTP content. HTTP clients use MIME content type headers to indicate the desired application to process the specific type of content they send. HTTP servers insert MIME content type information in all their responses.

MIME defines the following headers:

  • MIME-Version
  • Content-Type
  • Content-Disposition
  • Content-Transfer-Encoding

Media Type

Wikipedia Media Type

A media type, also called media-type, content type or MIME type is a two-part string identifying the format of a document. Usually, knowing a document's format allows us to parse it. IANA (Internet Assigned Numbers Authority) is the official authority for the standardization and publication of media types.

The media type string consists of a type and a subtype. The subtype can be further be structured into a tree. A media type can optionally define a suffix and parameters:

type "/" [tree "." ] subtype ["+" suffix] *[";" parameter]

The currently registered types are: "application", "audio", "example", "font", "image", "message", "model", "multipart", "text" and "video".

An HTML file may be designated as:

text/html; charset=UTF-8

Media Type Support

HTTP Protocol Semantics within a REST Application Context

GET

Get a representation of a resource.

Also see:

HTTP GET Specification

POST

Create a new resource underneath the current one, based on the given representation.

Also see:

HTTP POST Specification

PUT

Replace the state of the given resource with the one described in the given representation.

Also see:

HTTP PUT Specification

DELETE

Destroy the resource.

Also see:

HTTP DELETE Specification

PATCH

Defined in RFC 5789.

Modifies part of the state of the given resource based on the given representation. If some bit of resource state is not mentioned in the representation, it should be left unmodified. PATCH is like PUT, but allows for fine-grained changes in resource state.

HEAD

Get the headers that would be sent along with a representation of this resource, but not the representation itself. This method is mostly used when a client explores the API.

Also see:

HTTP HEAD Specification

OPTIONS

Discover which methods this resource responds to. This method is mostly used when a client explores the API.

Also see:

HTTP OPTIONS Specification

LINK

UNLINK