Copy link to clipboard
Copied
Hello!
This might be a stupid question, but I'm a bit confused and can't find anything anywhere.
I am building a new internal application in ColdFusion 2018. A team member has said that it needs to be entirely RESTful. I have built RESTful APIs to applications to expose portions of the application funtionality or data to outside tools/applications. However, there will be no outside tools inegrating with this application. If I am already using an MVC design, is there a good reason for the apparent extra work of making RESTful methods and access if everything is only accessible within the single application?
Thank you for any input.
Copy link to clipboard
Copied
This is a question that requires a longer answer than I'll be able to give here, so I'll skip to the shorter version: it depends, there's not necessarily a "right" answer.
I personally don't think that MVC is an especially great model for web development even though that's what we (including me) all used for a time (and still often use), for a variety of reasons I'm not going to go into. I seem to recall the creator of MVC, Trygve Reenskaug, saying it wasn't really suitable for web applications. But that's just my opinion really, I don't have any hard evidence to go on one way or the other. But the point of this is that, to me, leaving MVC is not such a great loss.
There is a lot of potential value to building an application that consists of RESTful APIs. You can use whatever kind of front ends you want, and those front ends can easily be changed over time. I would guess that most applications doing this extensively aren't doing it specifically for external data consumers, but rather for internal ones. And I think there's a lot of value in that if you're interested in JavaScript-based front ends.
But if you're not actually going to implement those front ends, there's probably less value in doing this. And it is a lot more work for me at least, to identify how to build a "headless" application - which is what you're really doing - than to build it in a more traditional manner. You have to think harder about how all of these API calls are going to work together in the finished application than you would if you were building a mostly server-side presentation with specific uses of JavaScript front end stuff here and there. But again, that's just how it's worked out for me, and it's not a matter of right or wrong.
So, in conclusion: if it makes sense for you to take this approach, it's the right thing to do. If not, or if you don't think you'll be building that full JS front end in the next few years, don't. Web applications have a fairly short shelf life, and will probably need to be redesigned and rebuilt in three to five years anyway. It will be a big learning curve if you do take this approach. That's ok, we're in a business where constant learning is required. But you will need to factor that into your development time, sprint cycles etc.
Dave Watts, Eidolon LLC