Interview questions on REST

I sometimes get asked about what is REST in an interview. I feel like
I have a sense of what it is, yet the answer seems somewhat
theoretical. When I built a website that supported sub domains for
rock bands, I felt I got some sense of what it was, yet I was not sure
exactly how to define it in my own words. I often feel like I don’t
give good interview answers or I am not sure why people seem to feel
it is such an important question to ask, what it is they are looking
for etc …

Once when asked have I used rest, my answer was something of the form
of I probably had used it without realizing it when I used rails
scaffolding …

Below is the definition I have from my interview prep notes


what is REST
Representational state transfer. A software architectural style
typically associated with HTTP requests.
A Client/server based stateless architecture consiting of resource
identifiers that is cacheable. It is typically supported by a handful
of methods such as get, put, post (new), and delete

what are advantages of REST

  • Simple.
  • You can make good use of HTTP cache and proxy server to help you
    handle high load.
  • It helps you organize even a very complex application into simple
    resources.
  • It makes it easy for new clients to use your application, even if
    you haven’t designed it specifically for them (probably, because they
    weren’t around when you created your app).

On Mon, May 16, 2011 at 4:41 AM, [email protected]
[email protected]wrote:

I would advice anyone from giving you a direct answer on this because
the
point of an interview to see if you actually know what you claim on your
resume. If you don’t know it you are not qualified for the job.

With that said, I will point you in the right direction for
understanding
and learning more about REST. It’s used in Rails but without a basic
understanding of what is covered in it you will not understand the
references to REST in other Rails docs and guides.

Start here: http://en.wikipedia.org/wiki/Representational_State_Transfer

Then go to here: SitePoint Blog – The best Web Development & Design Blog

Be sure to look up and read up on any terms you don’t understand.

Good luck.

B.

On Mon, May 16, 2011 at 7:14 AM, Bryan C.
[email protected]wrote:

it is such an important question to ask, what it is they are looking
for etc …

I would advice anyone from giving you a direct answer on this because the
point of an interview to see if you actually know what you claim on your
resume. If you don’t know it you are not qualified for the job.

That should have read “I would advise against anyone giving…”

Thanks,

I have been through that wikipedia dry and theoretical stuff a bit
before. Some of it is useful, but I can’t always seem to draw out what
are the main points that I should care the most about and what is
assumed such as client/server is obviously an assumption, but if I
don’t give a fully qualified answer then someone might think I am
lacking I suppose. I have a degree in CS from 1990, so any response on
what is a good answer to this type of question might be instructional
to me.

I think I like Ruby alot as a language, but the front end GUI stuff
with html, http, javascript, css and all gets me less excited. I
realize I have to try to get into those areas a good deal in order to
have some edge as a Rails developer, so I make some attempt but not
enough to be a real expert the way I look at it. I then have had
people think I was too much of a GUI person because of all of that
stuff on my resume.

I did find the Restfull Rails blog post interesting, but it seemed
like it was labeled part 1 and there was no follow up, but I see there
are other articles on restfull rails so you may have pointed me in the
right direction.

One thing that the article said was:
“There are two other verbs that you might not have heard of because
browsers dont support them: PUT and DELETE”

rails templates don’t cause PUT or DELETE to be sent to the server ?

I am not sure if this REST stuff is in any way related to how you can
have a situation where the browser back and forward buttons don’t work
the same because the web page gets modified with dynamic html. I know
there are ways around that, but sometimes when you are messing around
and just adding some dynamic AJAX or RJS stuff you end up with
something like that until you decide what the final site layout might
be.

Sent from my iPhone

On May 16, 2011, at 2:31 PM, “[email protected][email protected]
wrote:

study that a bit now that I have some time to do so.

I seemed to recall I had written some mixin modules to support some
of this. The other thing that is a little frustrating is I get alot of
questions in interviews on my previous work. I no longer have any of
that code to look at and it was government work and there is no way I
could have saved any of the code.

Nor could you have passed it on anyway. I got requests like that too in
the past. My stock answer was a polite “no, it was done under a
classified clearance.”

People these days seem to ask alot
more questions than years ago as well.

I agree. It’s necessary because of the flood in the market of people
that were not programmers and engineers getting those jobs in the late
90’s/early 2000’s. They ended up writing bad unsupported code that these
companies got stuck with. Just grin and bear it. They’re just trying to
not get burned again.

B.

So I had done some things in the past with map.resources in the
routes, but I never really fully understood all of it, especially when
there was more than one level with children such as:

map.resources :bookmarks, :has_many => [:comments]

I had kind of rushed through some examples and I should probably
study that a bit now that I have some time to do so.

I seemed to recall I had written some mixin modules to support some
of this. The other thing that is a little frustrating is I get alot of
questions in interviews on my previous work. I no longer have any of
that code to look at and it was government work and there is no way I
could have saved any of the code. People these days seem to ask alot
more questions than years ago as well.