He asks if we can talk to the REST API using fully MVC.
Yes, this is very common. The current version of MVC is asp.net-core-mvc , basically MVC / WebApi , wrapped in one Framework.
I explained to him that MVC means that the view is closely related to the controller.
No. The controller really has nothing to do with anything other than building a model and routing to view. Every project that I built from scratch, the view does not know about the controller, and most of the time it knows only about the model passed to it (in other cases there is not even a model). Someone might tightly associate a view with a controller, but I would not recommend this.
He asked why we canโt completely create a REST API,
You can, it is very easy, I do it almost all the time.
create an MVC application that uses the HttpClient in the controller (or service class) to get into the API.
This is a bad idea if , it is the same project. There is no reason to add another network layer. It does not give any value.
I also felt that I did not know enough about how other people deal with this situation.
So this is really my personal opinion. I have been working with Asp.net-mvc since version 2.0 using jQuery. I switched to using MVC with KnockoutJS , which moved 95% of the data to API calls, and most of my views have no models. I worked on projects with Angular, but based on my very limited knowledge, it was much harder to pick up and it seemed to take a lot more to make something simple. I am currently working with Kendo (like Knockout MVVM), and it does the job. In all of these cases, using the front-panel Javascript Frameworks, most of my views are model-independent, relying solely on the API.
If I were to start a new project with a limited time, IMHO MVC / WebAPI + Knockout is ridiculously simple. Again, this is my opinion based on my preferences and experiences.
HOWEVER warning: rant
Why does he want him to be REST Api? Seriously, I really hate it when any type of manager tells me which tools I should use to build a solution. This is the new / old SOA (Service Oriented Architecture) of our time. Sometimes adding a requirement without any reason just adds more time / resources to get the solution out of the door.
For instance:
Manager: I need to deliver the pallet to the destination. Create a vehicle that can carry one pallet to its destination as efficiently as possible. Oh, and he needs 4 doors!
Me: Why do I need four doors? Because you like 4 doors? Because it's a new hobby?