I think it would be helpful to better understand your use case. But I can say, with a lot of statistical evidence to back it up, that only a very small band of users would prefer to type in a URL directly, than to fill in blanks in a form. I'm about as technical as they come, but I wouldn't use, say, a flight tracker that required me to remember and type in a URL: www.delta.com/flights?flight=DL177. I'd just bookmark the tracker, which hopefully would bring up a form that said "Flight Number: _____" and have a submit button.
I find it difficult to model a hierarchy which 'burns in' my current >> > view of a topic. Then that's probably the wrong approach for your application. If you have a large number of complex parameters that can be supplied to a service, for example, a search service, typically this is done with parameters and some sort of UI (a form or whatever) that can assist in filling in the parameters. Google, Yahoo, and others don't care if you submit this information via GET (in the query string) or POST (in the entity body). The advantage to using GET here is that it makes the query bookmarkable -- the URI contains all the information needed to replicate the search. And yes, people could also construct it from first principles in their head and type it in, but few of us will. If you're not really searching or querying, but just addressing -- doing CRUD operations on known things at known locations in an orderly address space -- you probably don't want query string semantics; they're ambiguous, and HTTP probably supplies a rich enough set of verbs already. > And another question: > What existing command line clients do you use to make GET/POST/PUT/DELETE > calls? > Curl is typically preinstalled on Linux (with ssl support), > but what is a command line client pre-installed on a Windows box? > Pre-installed? I don't know of any. Davide Angelocola, who's on this list, made a very small and simple RESTful command line client in Java: http://markmail.org/message/27foh7vu4bgg46ex I don't know how finished his RESTshell project is, but it's a super neat idea, basically just gluing an interpreter on top of Restlet, and works cross platform. Maybe he can weigh in here. - R

