Remix.run Logo
chasingthewind a day ago

I was a REST purist for a while and the purer I got the more unhappy I was. Hypermedia standards like Siren and HAL just made things miserable no matter how hard I tried to make them work.

I think the REST Architectural Pattern is great but I don't use it anymore. Instead I create ROUSED services.

  Resource
  Oriented
  Unconstrained
  Sensible
  Enterprise
  Services
Resource Oriented because the very best thing about REST is the tendency to focus on resources and collections of resources and how you can interact with them sensibly.

Unconstrained because I don't let some specification control how I work.

Sensible because things still need to be internaly consistent and well thought out.

Enterprise because the fact is I'm always making these services for some 'boring' business use case.

Services that provide some specific set of bounded capabilities within the usual messy ecosystem present at a SaaS software company.

I think we owe a lot to Roy Fielding for the potent ideas but as others have argued eloquently, reality sets in and you have to adapt to circumstances.