On this thread thus far I'm going to be the one guy saying the Emperor has no clothes.Yes, REST has the hypermedia constraint or as some on this list like to say "Level 3 REST" but in practice it adds a potentially significant burden to would-be clients when compared to URL construction.IF there were a standard media type for RESTful interactions that was simple to implement and the majority of people where happy to use and IF there were available open-source libraries for all common languages and platforms for interacting with this hypothetically widely adopted standard for fully RESTful APIs THEN it would be hard to argue against "Level 3 REST." But that isn't the case.Time is money and there are no standards nor standard software for REST Level 3. Given that I would choose URL construction over hypermedia for a public API client if I were given the choice. And if I cared about API adoption, I wouldn't even consider using hypermedia because doing so would limit the number of people who would successfully end up using it.
JMTCW.
Yes, REST has the hypermedia constraint or as some on this list like to say "Level 3 REST" but in practice it adds a potentially significant burden to would-be clients when compared to URL construction.
So, as you "bah, humbug" your way through the topic,
My "bah humbuging" on the topic is me saying:
"If you feel it's important, don't preach, take effort to make it practical.Just please stop preaching that which is impractical."
how do you feel about URL templates for URL construction?
URL templates are just a streamlined form of hypermedia, IMO.
So, as you "bah, humbug" your way through the topic,My "bah humbuging" on the topic is me saying:"If you feel it's important, don't preach, take effort to make it practical.Just please stop preaching that which is impractical."
My "bah humbuging" on the topic is me saying:"If you feel it's important, don't preach, take effort to make it practical.Just please stop preaching that which is impractical."
and to whom are you addressing this remark?
No one person in specific but a general plea to those who haven't or won't publicly acknowledge that adding hypermedia places significant burdens on prospective client developers.Actually, what I'd really like to see is a working group with full industry support formed to resolve the issue, i.e. to develop a lightweight standard media type for hypermedia REST that the majority of stakeholders could agree on so that open-source libraries could emerge. But what we have instead is for years people saying "Oh, it must be hypermedia" but there has been no collective action to make it practical.
In practical terms, a basic link gives a client a string that they
would otherwise have to *construct themselves* according to some URL
construction logic - if anything that is less complicated from the
client's point of view.
With URL construction an occupational programmer can make one HTTP call to access an API; this is basically declarative in nature.With hypermedia an occupational programmer has to make an HTTP call, apply logic to the response and then make a 2nd (or subsequent) HTTP call(s). This is procedural and the level of development skills required goes up.Lots of people accessing public APIs are graphic designers building websites who only write Javascript or PHP because they have no other choice. Hypermedia APIs make it effectively impossible for many of these people to use them in the websites they build. Good programmers often discount how hard it is for occasional programmers to do things that they see to be trivial. At least that's my experience in the WordPress community which is the platform that populates over 14% of the web.So if it's a public API then hypermedia raises the bar for entry and reduces adoption. In my experience.
Absolutely, and this is exactly what hal was created for. It doesn't
have any form controls; form controls are being added to a separate
media type (halo+json) extending hal.
-MikeOkay, so where's the working group? Why is Mark Nottingham publishing a competing spec[1] with Rackspace?I'm not being confrontational, I'm just asking questions that needs to be answered to move things forward.
"If you feel it's important, don't preach, take effort to make it practical. Just please stop preaching that which is impractical."
Sure. See https://github.com/JornWildt/Ramone - that's a client side
library for consuming hyper media driven services :-)
But, yes, its in C# and unfortunately that won't help the graphical
non-programmer designers you mention. But its a step in the right
direction.
Yes, but yet another approach actually makes it worse, not better. :)We need a standard solution that the industry generally agrees on, not a cornucopia of approaches:
And several more, I'm sure...