Does the client contribute to the RESTfulness of an application?
- HI allOne topic that keeps coming up in my recent conversations is about the scope of REST and whether it applies both to client and server i.e. is the application the server, or is it the combination of client and server? Yes definitely REST is a client-server architectural style...Assume I have implemented my server in a RESTful way i.e. it adheres to all the constraints / is hypermedia driven.
Interested in your thoughts and this is not a leading question :-)ThanksGlenn
- If I have no clients actively consuming me can I say the application is RESTful? i.e. is the RESTfulness determined by the server.
- Is each client + server combination considered an application?
- If I have two clients, one which consumes my application using hypermedia and other that doesn't / hardcodes dependencies on my URIs then is the entire application non-RESTful?
- Or, is it that really there are multiple applications (client1 + server, client2 + server) with one being RESTful the other not.
- Are there actually three applications? one the server app, and the other two composites of client and server?
- Seems we are all starting to agree.As of my POV on the client, two points:
In fact, I'm a client guy. I understand that a RESTful backend is the best way known to decouple front-end development from back-end development.REST sets a set of clear and crisp rules on how to build the services disregarding the specifics of the client's design.This is a VERY GOOD thing. Decoupling is good because it slashes system complexity at the exponent level.This allows a team to design a really usable UI (this is my area of knowledge) using for example HTML5 and jQuery (any other technology would do) and let the client tell its services needs.The client designer must be aware of the REST way of doing things, as it came out from this thread. The good news is that REST is easy to teach and understand.--Juan Lanus
- it doesn't inpact the RESTfulness of the service, and
- bad clients make bad systems (the aggregate) despite the quality og the server: the chain is as strong as its eweakest link.