Live data from Hacker News

Richardson Maturity Model

martinfowler.com

11–20 of 31 posts

Re: Richardson Maturity Model

#11

Calling an API without hypermedia a “level two REST API” is like calling a lettuce and tomato sandwich a “level two BLT”. You’re missing an intrinsic piece of the puzzle and anybody actually expecting a BLT is going to be disappointed. Why are people so adamant that they absolutely must call non-REST APIs “REST”? Names are free, you don’t have to hijack the name of something else!

they say REST, they mean 'transport over HTTP and JSON payload'

Re: Richardson Maturity Model

#12

> This allows us to invoke GETs safely any number of times in any order and get the same results each time. An important consequence of this is that it allows any participant in the routing of requests to use caching, which is a key element in making the web perform as well as it does. What conditions for a restful api does this come in handy? In most implementations I have had the requests are as quick to figure out…

Static content by definition doesn't change so this rule isn't for that case. Caching benefits even dynamic content, and dealing with cache invalidation is a separate problem than what is being discussed here. Your clients may always want the freshest content, but that often isn't scalable. If it is, you can put no expiration in your cache headers and let 'er rip. But you should still respect the idempotency of GET requests.

Re: Richardson Maturity Model

#13

I would love to see some real world use cases of level 3, both for machine to machine use and for human to machine use.

The World-Wide Web.

Dynamically generated HTML as a response of an HTTP server! Preposterous! And what else? Maybe a scripting language so the user can interact with the client without having to contact the server? Insane!

Re: Richardson Maturity Model

#14

I'll say that the religious approach some take with REST is weird to me. Apparently there's some promised utopia behind getting REST perfect but in the end, nobody does it right but everybody makes it work for their case Getting the linkrels back is great, but it is up to your frontend to interpret them and display them back. There is no "magic" there because only humans know what does cancel/change mean, not the com…

It's a fair point, but there is value in having those URLs constructed by the server rather than the client. The server can shift the path and params to make changes without the client having to make updates.

Re: Richardson Maturity Model

#15

Calling an API without hypermedia a “level two REST API” is like calling a lettuce and tomato sandwich a “level two BLT”. You’re missing an intrinsic piece of the puzzle and anybody actually expecting a BLT is going to be disappointed. Why are people so adamant that they absolutely must call non-REST APIs “REST”? Names are free, you don’t have to hijack the name of something else!

The article doesn't say to call an API without hypermedia a "level 2 REST API"; in fact it says the exact opposite.

> I should stress that the RMM, while a good way to think about what the elements of REST, is not a definition of levels of REST itself. Roy Fielding has made it clear that level 3 RMM is a pre-condition of REST.

Re: Richardson Maturity Model

#16

Calling an API without hypermedia a “level two REST API” is like calling a lettuce and tomato sandwich a “level two BLT”. You’re missing an intrinsic piece of the puzzle and anybody actually expecting a BLT is going to be disappointed. Why are people so adamant that they absolutely must call non-REST APIs “REST”? Names are free, you don’t have to hijack the name of something else!

It's one of the very annoying quirks of language that if enough people call an apple an orange, suddenly "orange" also means "apple". I hate it but there's not a lot we can do about it.

Re: Richardson Maturity Model

#18
post #11

Calling an API without hypermedia a “level two REST API” is like calling a lettuce and tomato sandwich a “level two BLT”. You’re missing an intrinsic piece of the puzzle and anybody actually expecting a BLT is going to be disappointed. Why are people so adamant that they absolutely must call non-REST APIs “REST”? Names are free, you don’t have to hijack the name of something else!

they say REST, they mean 'transport over HTTP and JSON payload'

Nobody ever understood what REST means. The "standard" creator choosing not to document its meaning really didn't help.

So, yeah, REST means whatever people use it for, that is 'HTTP services with JSON payload'. That's the actually valuable part of it anyway, the meaning that was documented after everybody started using it wrong is a synonym for the web, and we already have a name for it.

Re: Richardson Maturity Model

#19
post #15

Calling an API without hypermedia a “level two REST API” is like calling a lettuce and tomato sandwich a “level two BLT”. You’re missing an intrinsic piece of the puzzle and anybody actually expecting a BLT is going to be disappointed. Why are people so adamant that they absolutely must call non-REST APIs “REST”? Names are free, you don’t have to hijack the name of something else!

The article doesn't say to call an API without hypermedia a "level 2 REST API"; in fact it says the exact opposite. > I should stress that the RMM, while a good way to think about what the elements of REST, is not a definition of levels of REST itself. Roy Fielding has made it clear that level 3 RMM is a pre-condition of REST.

Sorry, there’s a little bit of background knowledge needed here – this is an old and very well-known article. The article itself is correct, but nevertheless, after it became popular, a tonne of people started using the terminology “level two REST” to justify calling APIs that were not REST “REST”. I’m more responding to that than the article itself.

Re: Richardson Maturity Model

#20
post #11

Earlier quoted context omitted.

they say REST, they mean 'transport over HTTP and JSON payload'

Nobody ever understood what REST means. The "standard" creator choosing not to document its meaning really didn't help. So, yeah, REST means whatever people use it for, that is 'HTTP services with JSON payload'. That's the actually valuable part of it anyway, the meaning that was documented after everybody started using it wrong is a synonym for the web, and we already have a name for it.

> The "standard" creator choosing not to document its meaning really didn't help.

REST isn’t a standard, it’s an architectural style. And I’m not sure how you can say that the author chose not to document its meaning when the name “REST” originated with the author’s PhD dissertation.

Post reply on HN