Re:“What Alan Kay Got Wrong About Objects”
by mpweiher on Monday November 18, 2019 @03:38AM
(#21562779)
Well, and the URIs / Polymorphic Identifiers. The combination of these two is crucial. And yes, that's all it takes and yes, it is a bit odd. Took me a while to accept as well: the first system in the style was around 2004.
However, the In-Process REST paper[1] has a section listing the constraints of the REST architectural style, and we actually match those constraints very well, apart from the obvious bit of not being a distributed system.
The constraints (from Fielding's dissertation) are:
1. Client Server
That one's the obvious miss, as long as you define client and server as being separate computers.
2. Stateless
If you follow the model, then any state mutation is done via the "verbs", so yes. No more or less enforceable by the mechanism than in real REST.
3. Cacheable
Yes.
4. Layered System
See Storage Combinators. Yes.
5. Codee on demand (optional)
Doesn't make sense, so no. Optional, so no big deal.
6. Uniform Interface
This is the one with the URIs and verbs, so yes.
HATEOS was at least partially adhered to in the system we built, but again not enforceable by the model and also widely not adhered to in the wild.
However, the In-Process REST paper[1] has a section listing the constraints of the REST architectural style, and we actually match those constraints very well, apart from the obvious bit of not being a distributed system.
The constraints (from Fielding's dissertation) are:
1. Client Server
That one's the obvious miss, as long as you define client and server as being separate computers.
2. Stateless
If you follow the model, then any state mutation is done via the "verbs", so yes. No more or less enforceable by the mechanism than in real REST.
3. Cacheable
Yes.
4. Layered System
See Storage Combinators. Yes.
5. Codee on demand (optional)
Doesn't make sense, so no. Optional, so no big deal.
6. Uniform Interface
This is the one with the URIs and verbs, so yes.
HATEOS was at least partially adhered to in the system we built, but again not enforceable by the model and also widely not adhered to in the wild.
[1] https://link.springer.com/chapter/10.1007%2F978-1-4614-9299-...