REST (REpresentational State Transfer) is an interface type that was created in 2000 by Roy Fielding in a doctoral dissertation. It is based on HTTP, so a REST interface is basically composed of GET, PUT, POST, HEAD, and DELETE operations. I’ll explain REST Interfaces in this post, and follow-up with a Swift REST API example.
REST Interface HTTP Components
First, let’s look at each operation as defined by the HTTP components:
- Method
The operations typically are: COPY, DELETE, GET, HEAD, PUT, and POST.
The server has complete freedom in defining these operations.
Typically though, these operations are defined as follows:
COPY – create a copy of an item.- DELETE – delete an item.
- GET – read an item.
- HEAD – read item meta-data.
- PUT – create an item.
- POST – write item meta-data.
- URL
The URL is commonly of the form:
<http>://<ip><port>/<version>/<auth>/<parameters>
Where:- <http> = “http” or “https”.
- <ip> = ip address.
- <port> = port number.
- <version> = version string.
- <auth> = authorization token.
- <data> = operation specific data.
- <parameters> = options.
Parameters begins with a “?”. Multiple parameters are seperated by a “&”.
- Request Headers
Operation input headers. - Response Headers
Headers returned by the interface. - Response Data.
Data returned by the interface in ASCII format. - Status Code
HTTP status code. This code is in the range 1 – 600 and can be broken down as follows:- 1xx Informational.
- 2xx Success.
- 3xx Redirection.
- 4xx Client Error.
- 5xx Server Error.
Next time I’ll present a SWIFT REST Interface API example. In the meantime, what would you add to this explanation?