Application/REST

== REST ==
REST stands for Representational State Transfer
REST is an architectural style for providing standards between computer systems on the web. Purpose: It should make it easier for systems to communicate with each other. 
Conditions: 
* Total seperation of server and client. Changes in either must never impact the other. But: They must know the format of messages they are going to exchange.
* Statelessness: Must understand each other at any time, independent of state/previous messages
* Client-Server Communication: Client makes requests, wants to retrieve or modify data, server sends response
Server will need to send: 
* An HTTP Verb (GET/POST/PUT/DELETE)
* Header & Accept Parameters
* Path
* optional message containing data(format specified)
Reponse must contain:
* Content Type
* Response Code (200 "OK", 400 "Bad Request", 403 "Forbidden", 404 "Not Found", 500 "Internal Server Error") 
== REST API / RESTful API ==
A REST API is an application programming interface that conforms to the constraints of the REST architecture, and allows for interaction with RESTFUl web services
An API is a set of definitions and protocols for building and integrating application software. It’s sometimes referred to as a contract between an information provider and an information user—establishing the content required from the consumer (the call) and the content required by the producer (the response).
In other words, if you want to interact with a computer or system to retrieve information or perform a function, an API helps you communicate what you want to that system so it can understand and fulfill the request. 
You can think of an API as a mediator between the users or clients and the resources or web services they want to get. It’s also a way for an organization to share resources and information while maintaining security, control, and authentication—determining who gets access to what.