3 ms·
I agree that the HTTP methods, when used properly, express the action...the problem is A. not everyone actually follows that properly and B. the HTTP method isn
by falicon 13y ago
I agree that the HTTP methods, when used properly, express the action...the problem is A. not everyone actually follows that properly and B. the HTTP method isn't always immediately obvious to people working with the service (i.e. newbie devs.)
Having the verbs in the URI is not DRY (so that kind of sucks) but really it's not very damaging either...and so I believe the upside of (human readable) clarity outweighs the downside of a tiny bit of redundant expression.
In the end, unfort. because so many don't follow RFC 2616, devs are forced to read/pay attention to the documentation for a given service anyway (at least that's always been my experience)...so in a perfect world, I would agree verbs are the methods (and not needed in the URI)...but we are a ways off from a perfect world still...
- aaronem 13y agoTo answer your points in reverse order: It is entirely reasonable to expect newbies to read the relevant documentation; if someone can't be bothered to read and understand one relatively succinct RFC, then any difficulty he experiences in consuming my API leaves me entirely unmoved. As hurdles go, that one's so low it's practically buried; if he can't be bothered not to stub his toe on it, how's he going to handle himself when he gets to something that requires actual effort? Someone else doing it wrong doesn't excuse you doing it wrong as well. How do you expect anything to get better if you won't turn your own hand to making it better? Sooner or later, someone will use your implementation as an example for her own. It is therefore very much worth your while to ensure that the example you provide is one of how to do it right.
- falicon 13y agoI think it depends on your intent behind the API. Are you trying to create something that makes the developer/user/world easier and better or are you trying to keep your system perfect, clean, and done the right way? If it's about opening up to the larger world so that more things can be built and accomplished, you want to make it as easy as possible to use and understand across the board. You can be as strict and stern about RFC specks and rules as you want when building your thing...however, the more rigid you are, they more you'll need to be operating from a position of power from the start or the more you'll struggle to get real adoption (and to be realistic, most of us are not really releasing things from a position of power)