I see REST mentioned on some job postings as well as a recommended
list of questions. I found an extensive definition in the wikipedia,
Representational state transfer - Wikipedia what seems to stand out is that it is
stateless, does not really on cookies and is heavily based on cacheing.
I also see that CRUD, create/read/update/delete and it is compared to
RPC. There is also references to XML, SOAP and so on which I am very
familiar with, but not sure how these may apply to REST. I’m not really
sure what is the best way to answer this question if someone asked me
in an interview to give them a definition of what REST is ? The full
wikipedia definition is very long. I recall that there is other ways to
use state such as encoding information into URL’s and so on. Part of
the definition seems theoretical and part of it seems to imply certain
technologies or the lack thereof. I haven’t found a concise definition
or one that seems easy to get a grasp on as of yet. I am mainly
interested in regards to Rails.
Someone had emailed me on REST in reagards to doing development on a
non profit site at one time and it seemed like a dejavu experience as
if I’d heard of it before but couldn’t remember. It seemed like he was
advocating like this is the way you should do it, as if it was a
methodology like OOP, top down design, reusability DRY, etc. The
wikipedia defintion seems to imply http is REST because it is
stateless, this confused me a little because I have read in that
context that that is a problem with the web, that it is stateless, on
the other hand maybe I am not that up on caching either. My first
experience with a complex web site was CGI with Perl and the session
tracking with cookies was very cumbersome. Then I saw how easy you can
store session info in rails and at first I was quite impressed, but was
not sure if that was good or bad because I latter found that all the
session stuff gets stored on the file system by the web server. Does it
ever delete this stuff ? If you have alot of session data, I guess it
could use alot of disk over a long period of time.
Anyway, if anyone can simplify understanding of REST and how I would
answer what it is in so many words or less in an interview I would
appreciate it.