Click here to Skip to main content
15,913,669 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: About REST - Why Oh Why Pin
User 483504724-Apr-17 4:57
User 483504724-Apr-17 4:57 
GeneralRe: About REST - Why Oh Why Pin
Vark11124-Apr-17 6:02
Vark11124-Apr-17 6:02 
GeneralRe: About REST - Why Oh Why Pin
User 483504724-Apr-17 6:40
User 483504724-Apr-17 6:40 
GeneralRe: About REST - Why Oh Why Pin
Vark11124-Apr-17 6:57
Vark11124-Apr-17 6:57 
GeneralRe: About REST - Why Oh Why Pin
User 483504724-Apr-17 7:12
User 483504724-Apr-17 7:12 
GeneralRe: About REST - Why Oh Why Pin
Vark11124-Apr-17 7:54
Vark11124-Apr-17 7:54 
GeneralRe: About REST - Why Oh Why Pin
User 483504724-Apr-17 8:01
User 483504724-Apr-17 8:01 
GeneralRe: About REST - Why Oh Why Pin
Nathan Minier25-Apr-17 1:39
professionalNathan Minier25-Apr-17 1:39 
I've gone back and forth a few times over the years on this one. I've spent a lot of time using POST-only operations with SPA's using a wrapper structure to define things like command and control, mapping functions, and data transactions.

I sat down a few months ago to work on a new pet project and as I was starting to wire up the request handlers I started to realize exactly what I was doing wrong: I was mixing my operational requirements with my data payload. Those two things will never exist in isolation and if anyone else wants to use my data they will need to do it on my terms.

Any use of my micro services required an interpreter for my structure; therefore my software was not a good and cooperative member of the ecosystem.

That's where I started to really think about the point of REST. I've had so many managers throw that term around that I've basically taken to ignoring it; it can easily be decomposed into a buzz-word that now encapsulates almost any SOA.

But that's not the reality. REST provides a framework that takes certain very reasonable assumptions and turns them into a communication strategy. Those assumptions are almost solid enough to be called "givens". The first is this: the basic foundation of web communications is that we ALL agree on a protocol to enable communications. The second: the important part of a transaction is the DATA, not the structure containing it. The third: to enable actual interoperability, we can rely on an agreed upon data format such as XML or JSON.

That was the lightbulb moment for me. To be a good actor in a diverse environment, I need to provide the formatted data without my own c^2 BS. That's where the really clever parts of REST come in: we have ALREADY agreed on a protocol and a format, and we can leverage those to provide the important bit, the data. By using REST, we can abstract the command and control to the protocol, which already has stimulus/response mechanisms wired up. The DATA becomes the point again, and that's exactly how it should be.

More to the point, REST provides a baked in C^2 strategy that can be used in a convention-based manner, rather than the negotiation that needs to be done for protocols like SOAP. By providing handlers in a convention-based manner, we provide data that anyone can hook without needing to lean on a .wsdl or other definition document; the definition is baked into the strategy.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli

GeneralRe: About REST - Why Oh Why Pin
Michael Breeden27-Apr-17 5:08
Michael Breeden27-Apr-17 5:08 
GeneralRe: About REST - Why Oh Why Pin
Nathan Minier28-Apr-17 1:53
professionalNathan Minier28-Apr-17 1:53 
GeneralRe: About REST - Why Oh Why Pin
Michael Breeden28-Apr-17 5:00
Michael Breeden28-Apr-17 5:00 
GeneralRe: About REST - Why Oh Why Pin
Nathan Minier28-Apr-17 9:26
professionalNathan Minier28-Apr-17 9:26 
Generalfast.ai Pin
Marc Clifton24-Apr-17 3:02
mvaMarc Clifton24-Apr-17 3:02 
GeneralRe: fast.ai Pin
Munchies_Matt24-Apr-17 3:14
Munchies_Matt24-Apr-17 3:14 
GeneralRe: fast.ai Pin
Mark_Wallace24-Apr-17 3:20
Mark_Wallace24-Apr-17 3:20 
GeneralRe: fast.ai Pin
Munchies_Matt24-Apr-17 3:28
Munchies_Matt24-Apr-17 3:28 
GeneralRe: fast.ai Pin
Marc Clifton24-Apr-17 3:25
mvaMarc Clifton24-Apr-17 3:25 
GeneralRe: fast.ai Pin
Munchies_Matt24-Apr-17 3:26
Munchies_Matt24-Apr-17 3:26 
GeneralRe: fast.ai Pin
Mark_Wallace24-Apr-17 7:18
Mark_Wallace24-Apr-17 7:18 
GeneralRe: fast.ai Pin
Marc Clifton24-Apr-17 13:55
mvaMarc Clifton24-Apr-17 13:55 
GeneralRe: fast.ai Pin
Munchies_Matt24-Apr-17 21:45
Munchies_Matt24-Apr-17 21:45 
GeneralJust when you thought Agile couldn't get more 'faddy'.. Pin
User 1013254624-Apr-17 0:11
User 1013254624-Apr-17 0:11 
GeneralRe: Just when you thought Agile couldn't get more 'faddy'.. Pin
Kornfeld Eliyahu Peter24-Apr-17 0:15
professionalKornfeld Eliyahu Peter24-Apr-17 0:15 
GeneralRe: Just when you thought Agile couldn't get more 'faddy'.. Pin
CDP180224-Apr-17 0:25
CDP180224-Apr-17 0:25 
GeneralRe: Just when you thought Agile couldn't get more 'faddy'.. Pin
User 1013254624-Apr-17 3:05
User 1013254624-Apr-17 3:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.