What are REST, RESTful programming, and a REST API? Well, they all refer, mostly, to the same thing. First and foremost, REST (Representational State Transfer) is a software design for most web services (definitely the most popular one) and helps simplify machine to machine communication over a network. But what kind of design is it?
In the diagram, we have many different devices (with different browsers and OS's) all making requests and receiving responses from some database, using REST. The problem that REST solves is complexity so that instead of having all of these different protocols on many different devices, all you have to do is use HTTP protocol to perform all CRUD (Create, Read, Update, Delete) operations. In this way, web pages and applications are navigated to and through using HTTP protocol to communicate between devices. (In the case of the diagram above, the android phone, iphone and mac all use HTTP to access information in the database).
TL;DR: Rest allows machines and humans to interact with websites much easier because it standardizes the action of doing things to data. A noun, similarly, is an object we talk about and we can GET it and we can PUT it somewhere. Same thing with a car. Same thing with a chair. The power of REST is that we don't need a different set of operations that are noun-dependent. Its a universally recognized way of performing actions on objects.
References:
http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
http://web.archive.org/web/20130116005443/http://tomayko.com/writings/rest-to-my-wife
https://app.box.com/s/l8fn4eyt9payhe4a64bt3drmwdvz7usw
No comments:
Post a Comment