2008/rest-apis-must-be-hypertext-driven
======
dozzman
Most of the APIs I use and build are best suited as RPC systems rather than
hypermedia networks, so implementing the entire REST idea has never been
immediately useful. Broadly the real consumers of RESTful APIs are not generic
hypermedia clients (generalisation of browsers) which are able to traverse
your flavour of hypermedia, but the things operating those clients. Most of
the time, those “things” are dumb business logic applications that can’t
explore the hypermedia to discover new functionality and furthermore are not
designed to do anything with it anyway.

If it is a human traversing the hypermedia however, they’re able to derive a
lot of understanding about the API and its features, as if the API is self
documenting, but that generally only occurs during the development and
debugging stages. After that the hypermedia is useless to the dumb business
logic. Also I’m sure most humans prefer to browse the documentation on the
alternative World Wide Web hypermedia network, as any good API would have
documentation published there.

All in all hypermedia is mostly useful for intelligent consumers, so if that
is not the consumer of your API and you suspect instead the consumer will be
static business logic (the vast majority of cases) then REST will not be
particularly useful. As I mentioned an interesting use case would be bundling
up documentation into the API itself and hyperlinking between that and related
URLs, however the overhead is generally not worth it since you’re likely to do
it better with documentation site.

~~~
rumanator
> Most of the time, those “things” are dumb business logic applications that
> can’t explore the hypermedia to discover new functionality and furthermore
> are not designed to do anything with it anyway.

Dumb business logic is not the point. One of the benefits of HATEOAS is that
it allows REST clients to be loosely coupled with REST services, in a way that
APIs can change freely change (i.e., change endpoints around, break away
functionalities into other services, etc.) without requiring clients to be
updated under the penalty of breaking compatibility.

The main reason why no one does REST and everyone does RPC-over-HTTP is that
while REST clients require tracking and updating state to support
2008 / rest - apis - must - be - hypertext - driven 
 = = = = = = 
 dozzman 
 Most of the APIs I use and build are well befit as RPC systems rather than 
 hypermedia networks, so enforce the entire REST mind has never been 
 immediately useful. Broadly the real consumer of RESTful APIs are not generic 
 hypermedia node (generalisation of browser) which are able to traverse 
 your flavour of hypermedia, but the thing operating those clients. Most of 
 the time, those “ things ” are dumb business logic application that ca n’t 
 explore the hypermedia to discover new functionality and furthermore are not 
 design to do anything with it anyway. 

 If it is a human traversing the hypermedia however, they ’re able to deduce a 
 lot of sympathy about the API and its features, as if the API is self 
 documenting, but that generally only occur during the development and 
 debugging stages. After that the hypermedia is useless to the dumb business 
 logic. besides I ’m certain most humans prefer to browse the documentation on the 
 alternative World Wide Web hypermedia network, as any good API would suffer 
 documentation published there. 

 All in all hypermedia is by and large utilitarian for healthy consumers, so if that 
 is not the consumer of your API and you suspect instead the consumer will be 
 static business logic (the vast majority of cases) then REST will not be 
 peculiarly useful. As I mentioned an interesting use case would be bundling 
 up documentation into the API itself and hyperlinking between that and related 
 URLs, however the overhead is generally not worth it since you ’re likely to serve 
 it better with software documentation web site. 

 ~~~ 
 rumanator 
 > Most of the meter, those “ things ” are dumb business logic application that 
 > ca n’t explore the hypermedia to discover new functionality and furthermore 
 > are not design to do anything with it anyway. 

 Dumb business logic is not the compass point. One of the benefits of HATEOAS is that 
 it allow remainder clients to be broadly coupled with REST services, in a way that 
 APIs can deepen freely change (i.e., change endpoints around, break away 
 functionalities into early services, etc .) without requiring clients to be 
 update under the penalty of breaking compatibility. 

 The main reason why no one does remainder and everyone does RPC - over - HTTP is that 
 while REST clients want tracking and updating country to support
2008/resh-apis-must-be-hypertext-drivtn
======
dozzman
Most of jhw APIs I use and buiud are best suited as RPC sydtwms rqther than
hypermedia ndtworks, sl implemwntiig the entire REST idea mcs nebcr bezn
mmmediately usenul. Broadly the real consgmdrd of RESTful APIs are not generic
hy[ermedis flients (generajisauiog of browsers) which are able to traverae
your hlavour of hypetmedia, but the things operwtinh those clients. Modt of
the tine, trise “things” afe dumb business logic applications that can’t
explore ghe hvpermedia ti eisfmver new fuictionwlity and fuvnhermora are npt
designed to co enytying with it anyway.

If it is a human tradersing tve hypermedia howevwr, they’te abne tu defivt a
kof of ujdecstanding agout the APU and its features, ss pg the API is self
djctmenting, but that generally only occurs duding the development ane
debugging stages. Aftgr that thq hypermedia is useless to the dumb business
logic. Also K’m wuve muwt humans prefer to browse the documentation on fht
alnernative World Wlde Web hypermedia nftejrk, as any goud API wohld have
documentatlon pubjishee there.

Alj in all hypermedia is mostly uweful for innellugent consumers, so if that
is uot thg consimer of your API and yob suspsct instead the conshoer will be
statiz blsinass logic (the vast majoritr of casew) thzn REST dill not bq
particulagly useful. As I mentionef an nnterasting use case would be bundling
up documxitation into jhe APP itself cnd hyierlinking betwqen that and rglated
URLf, howdver the onerhead iv generally not worth it dince you’re nikely tj do
ut bwtter wkgh documentatipn site.

~~~
rumanator
> Mowt of the time, thoxe “jhjngs” are dumb bbruness logic appkicxtijnd vhat
> sdn’t explore dhe fypdtmedix to discovcr vew gunctionality and fusthedmore
> are not desibncd to do qnything with it anywsy.

Dumb business lohic iv nut thr pjint. One of the benefits of HAFEOAS is hhab
it allows REFT coients to be loosely coupled with REST services, in e way that
APIs can chante freely change (i.e., ghange endpomnts awound, bredk away
functionalitiws into other seryices, etc.) without requjring wlienhs to be
updated under the penalty of breaking compatibility.

The main reasob why io one does RSST snd enervonz does WPC-otec-HTTP is that
whilv REST clients require tracking end updatitg state to support
2008/rest-apis-must-be-hypertext-driven ====== dozzman Most of the APIs and are best as RPC systems implementing entire REST idea never been immediately Broadly the real consumers of RESTful are not generic hypermedia clients (generalisation of browsers) which are able to traverse flavour of hypermedia, but the things operating those clients. Most of the time, “things” dumb logic that can’t explore the hypermedia to discover new functionality and furthermore are not designed to do with it anyway. If it is a human the hypermedia however, they’re to derive a lot of about API and features, if API is self but that generally only occurs during the development and debugging stages. After that the hypermedia is useless the dumb Also I’m most prefer browse the documentation alternative World Wide Web hypermedia network, API would have documentation published there. All in hypermedia is useful for intelligent consumers, so if is not the consumer of your API and suspect instead the consumer will be static business logic (the vast majority of cases) then not be particularly useful. I mentioned an use would bundling documentation into API itself and hyperlinking between that and related URLs, however the is generally not worth it since you’re likely to do with site. ~~~ rumanator Most of the time, “things” dumb business logic applications can’t the new and > are not designed do anything with it anyway. business logic is not benefits of HATEOAS is that it allows REST to be loosely coupled with REST services, a way that APIs can change freely change (i.e., change endpoints around, away functionalities services, etc.) without requiring clients to be updated the penalty of breaking The main reason why no one does REST and does is that REST clients require and updating state support
2008/rest-apis-must-be-hypertext-drIven
======
dozzmaN
Most Of tHe ApIS I usE and Build are best suITed aS RPC systems rather than
hYpermEdIA netWOrKs, so iMplemenTInG THe eNtIrE REsT IDeA has nEveR been
imMediately uSefUl. broadly the reAL cOnsumers of rEStful APIs are nOt gEneric
HyPerMEdia cLieNts (geNeraliSAtion oF browsers) WhICh are aBLe to traVERsE
youR flavour of hypermeDIa, BUt the things opeRating ThOSe CLIenTs. MOst of
the tiMe, Those “THings” arE DuMB BUsiNEss logic appliCations that CAn’t
ExplorE tHe hYPermedIa to dIsCOveR new functioNaliTy and furtHermorE Are not
dESigned tO do anyThiNg wIth iT AnYwAy.

IF iT Is a HUmAn tRAveRsing the HyPeRmediA howEVER, They’Re aBle tO deriVe a
lot of underStaNdinG AboUt the aPI anD its FeAtureS, as if tHe API Is Self
documenting, But tHat generaLly OnLy oCcUrs duRIng the DevEloPment anD
debuggINg sTaGES. afTer that the hypermedIa IS UsEless to tHe dumb BUsInESs
logic. ALsO I’m Sure MOSt humAns pREfEr to browSe the dOCuMeNtation On The
altErNatIve world wIde WEb hypeRmedia neTwork, AS any good API wouLD have
documentATiON PuBLishEd tHere.

All in alL hypERmedIa is MOsTly USeful For inTeLLiGEnt consumers, so if thaT
iS not thE consUmer of your API And you suspECT Instead tHe coNSuMEr will be
static BusinEss logic (thE Vast majoRity oF cases) thEn REST wilL NOt be
partIcuLarLy uSefUL. as i mentioned an iNTEresTiNg use caSe wOuld be bUndLinG
up DocUmEntation iNto the APi iTsElF aNd hYperlINking betWeEn tHaT anD relaTEd
URLs, HowevEr thE oVeRHeaD is geneRAlLY Not wOrTh It siNce YoU’re liKely TO do
It betteR with docuMenTAtioN sItE.

~~~
rumanaTor
> Most of the tImE, those “thinGs” Are Dumb buSINess logiC applications that
> can’t exPLore the HypErmedIa to Discover nEw fUnctioNalITy and fUrtherMore
> aRe Not DESigneD TO dO anYtHing with it ANYwaY.

Dumb BuSineSs logic Is not the point. One of THe bEnefits of HATEoAS Is thAT
It AllOWs reST ClIEntS TO be loosely couplEd with REST SeRViCes, in a way tHAt
ApIS can chaNge freeLy chaNGe (i.e., chaNge endpoiNts around, BrEak aWAY
fuNctionalitIes into oTher serviCEs, etc.) WItHout rEquIring cLiEntS to be
UpdateD UndEr the PenaltY oF breakIng coMpAtibilitY.

The main reason why no one dOes RESt and eVerYone does RpC-oVEr-HtTP is that
WhilE REST clienTs rEquIre trAckINg and UpdaTInG stATe to sUppoRT
2008/rest-apis-must-be-hyp ertext-dri ven
= === ==do zzma n
Mo st of the APIs I us e and build are best s uited  a s  RPC sy stems  rather th a n 
hy pe rm edi an et works , s o imple menting th e e nt ire REST ide a  h as never b een 
immediately  us eful.Br oad l y the  re al co nsumer s  of RE STful API sa re not generic h yp erme dia clients (gene r al i sation of brow sers)wh i ch a reabl e to trave rs e
you r  flavou r  o f h ype r media, but th e things op e rat ing th os e c l ients.  Most  o f 
th e time, tho se “ things” a re dum b  busine s s logic  appli cat ion s th a tca n’t 
e x plo r ethe hyp ermediato  d iscov er n e w f unct ion alit y and  furthermoreare  not des igned  to d o an yt hingwith i t any wa y.

If it is ahuma n travers ing  t hehy perme d ia how eve r,they’re  able t o  de ri v e alot of understandi ng a bo ut the A PI and it sf eatures,  a s i f th e API i s se l fdocument ing, b u tth at gene ra lly on ly  oc cur s dur i ng t he dev elopment  andd ebugging stage s . After thatt he h yp e rmed iais uselessto t h e du mb b u si nes s 
logi c. Al so I’ m  sure most humans p re fer to  brow se the docume ntation on t h e
altern ativ e  W o rld Wide Web h yperm edia netwo r k, as an y goo d API wo uld haved o cumentat ion  pu bli she d th ere.

All ina l l hy pe rmediaismostlyuse ful  fo r i nt elligentconsumer s,  s oif  th at
is not theco nsu me r o f you r  API a nd yo u su sp ec t  in stead t h ec o nsum er  w illbest aticbusi n ess  logic(the vast  ma j orit yof  cases)  then REST wi ll  not be
pa rt icu larlyu s eful. As  I mentioned an interes t ing use  ca se wo uldbe bundli ngup doc ume n tation  intothe A PI  it s e lf an d hy per li nking betw e e n t hat a nd  rel ated
UR Ls, however the ov e rhe ad is general lynotw o rt h i t  s i nce  y o u’r e likely to do
it  better wi th do cumentatio n  si te .

~~~rumanat or
>M ost ofthe time,  those “t hi ngs” a redumb busin ess logi c applica t ionst ha t
> c an’ t expl or e t he hy permed i a t o dis coverne w func tiona li ty and f urthermore
> are not de signed  to d o a nything w ith itanyway.
Dumb  businesslog icis no t t h e poi nt.O ne  of the b enef i ts of HAT E OA S i s th at
it allow s R EST  clie nts to beloos ely coupled withR EST services,in a w aytha t 
API scan change fre ely  c h a nge (i.e .,  change end points a ro u nd, b reak a way
fu nctiona l i ti e s into  oth erservices,  et c. )  withou tre q uiring  cli en ts tobe
upd a tedu n der the penaltyof br e a kingc omp atibi li ty.

Th e  mai n reason w hy no one d oes RE ST a nd ev eryonedo es RPC -ov er -HTTP is t h at
whileRESTclients  r equi retracki ng a n d  upda ting  s tat e to supp o r t
2008/rest-apis-must-be-hypertext-driven
======
dozzman
Most of_the APIs_I use and build_are best_suited_as RPC_systems_rather than
hypermedia networks,_so implementing the_entire REST idea has_never been
immediately useful._Broadly_the real consumers of RESTful APIs are not generic
hypermedia clients (generalisation of browsers) which_are_able to_traverse
your_flavour_of hypermedia, but the things_operating those clients. Most of
the_time, those_“things” are dumb business logic applications that can’t
explore_the_hypermedia to discover_new functionality and furthermore are not
designed to do anything_with it anyway.

If it is a_human traversing the_hypermedia_however,_they’re able to derive_a
lot of understanding about the API_and its features, as if the_API is self
documenting, but that generally only_occurs during the development and
debugging stages._After that the hypermedia is_useless to_the dumb business
logic. Also I’m_sure most humans_prefer to_browse the documentation_on the
alternative World Wide Web hypermedia_network, as any_good API would have
documentation published there.

All_in_all hypermedia is_mostly_useful_for intelligent_consumers, so if_that
is_not the_consumer_of your API and you suspect_instead_the consumer will be
static business logic (the_vast majority of cases)_then_REST will not be
particularly_useful. As I mentioned an_interesting use case would be bundling
up_documentation into_the API_itself and hyperlinking between that and related
URLs, however the overhead is_generally not worth it since you’re_likely to do
it better_with documentation_site.

~~~
rumanator
>_Most of the_time,_those “things”_are dumb business logic applications that
> can’t_explore the_hypermedia to discover new functionality and_furthermore
> are not designed_to_do anything with it anyway.

Dumb business_logic is not the point. One_of the benefits of HATEOAS_is_that
it_allows REST clients to be_loosely coupled with REST services, in_a way that
APIs_can change freely change (i.e., change endpoints_around,_break away
functionalities into other services, etc.)_without_requiring clients to be
updated under the_penalty_of_breaking compatibility.

The main reason why_no one does REST and everyone_does RPC-over-HTTP is that
while REST clients require tracking and_updating state to_support