Who uses RESTful?

I'm not into RESTful yet, as I haven't understood it completely. So my
question might fall back on that. I'm trying to learn it but I can't see
it will be useful for me.

Who uses RESTful? I mean often an app is not that straightforward. A
simple RESTful setup is more like an interface to the db, not a real
world scenario. And often you will use plain html and not other format
outputs, such as xml. A real app will have many different custom actions
and solutions that breaks the RESTful setup, right? What's your view on
RESTful?

If we want to make a distinction between REST- and non-REST-based
Rails applications, we use the
word traditional. Traditional does not mean old or even bad, it’s only
used to make a reference to an
equivalent non-REST concept. This comparison should help to better
explain the new technology.

Feature list of REST-based Applications makes clear:

Clean URLs. REST URLs represent resources and not actions. URLs always
have the
same format: first comes the controller and then the id of the
referenced resource.
The requested manipulation is independent of the URL and is expressed
with the
help of HTTP verbs.

Different Response Formats. REST controllers are developed in a way
that actions
can easily deliver their results in different response formats.
Depending on the requirements
of the client, the same action can deliver HTML, XML, RSS, or other
data
formats–the application becomes able to handle multiple client
demands, cleanly
and simply.

Less Code. The development of multi-client-capable actions avoids
repetitions in
the sense of DRY2 and results in controllers having less code.

CRUD-oriented Controllers. Controllers and resources melt together
into one unit–
each controller is responsible for the manipulation of one resource
type.

Clear Application Design. RESTful development results in a
conceptually clear and
maintainable application design.

Reference document: http://media.quilime.com/files/pdf/restful_rails_en.pdf

Regards,
Kiran.

Kiran Soumya wrote:

Clean URLs. REST URLs represent resources and not actions.

Yes that's good. But does it really matter? And my point is that it
might often be broken when you have all your custom solutions. At least
that's the case for me. Many web apps is not that simple that a RESTful
interface will do it. RESTful is more a UI for interacting with the db.
Correct me if I'm wrong.

Different Response Formats. REST controllers are developed in a way
that actions
can easily deliver their results in different response formats.
Depending on the requirements
of the client, the same action can deliver HTML, XML, RSS, or other

And how often do you use that? And if you do use it it will be for a
specific set of data which is really simple to implement for that simple
purpose.

Less Code. The development of multi-client-capable actions avoids
repetitions in
the sense of DRY2 and results in controllers having less code.

That's a plus.

Hi --

I'm not into RESTful yet, as I haven't understood it completely. So my
question might fall back on that. I'm trying to learn it but I can't see
it will be useful for me.

Who uses RESTful? I mean often an app is not that straightforward. A
simple RESTful setup is more like an interface to the db, not a real
world scenario. And often you will use plain html and not other format
outputs, such as xml. A real app will have many different custom actions
and solutions that breaks the RESTful setup, right? What's your view on
RESTful?

Different Response Formats. REST controllers are developed in a way
that actions can easily deliver their results in different response
formats. Depending on the requirements of the client, the same
action can deliver HTML, XML, RSS, or other data formats�the
application becomes able to handle multiple client demands, cleanly
and simply.

That's not specific to resource-routed controllers, though. You can
use respond_to and so forth with traditional routing.

CRUD-oriented Controllers. Controllers and resources melt together
into one unit� each controller is responsible for the
manipulation of one resource type.

They can melt together, but it depends a bit on what your resource is
and how it maps to its persistence mechanism (if it has one). Here's
some elaboration of some of this:

http://dablog.rubypal.com/2008/3/23/splitting-hairs-over-resource
http://dablog.rubypal.com/2008/4/24/splitting-hairs-over-resource-part-2

David