In general, the API driven architecture is much better, but the correct approach depends on the project to be implemented. The following factors have to be taken in consideration to evaluate the correct structure:
Scalability: How big will the application be and if it will it be accessed by multiple types of devices.
Budget: For example, a simple web portal which has very limited budgetary restraints and no short term growing forecast I see no reason to have an API.