Das Problem, das ich bei Ihrem Ansatz sehe, ist, dass Sie eine REST-API für nur einen Verbraucher, Ihre Controller, erstellen, und das ist übertrieben. Fügen Sie nicht nur eine Ebene hinzu, um Daten von einer Ebene zur anderen zu übertragen. Es macht keinen Sinn, Sie erstellen Arbeit für sich selbst ohne zusätzlichen Nutzen.
Eine (schnelle) Möglichkeit, Ihre API nützlich zu machen, besteht darin, dass dies der einzige Endpunkt ist, den Ihre Controller (dh Ihre Anwendung) jemals benötigen. Bedenken Sie:
Plötzlich hat Ihre REST-API einen Zweck, nämlich eine einheitliche Schnittstelle für Ihre verschiedenen Datenanbieter bereitzustellen. Ihre Anwendung muss nichts über die Google- oder Trello-API oder einen anderen Datenanbieter wissen, den Sie möglicherweise in Zukunft verwenden. Sie muss lediglich über Ihre REST-API Bescheid wissen.
Dieses Design ist zwar etwas nützlicher, aber dennoch übertrieben, wenn Ihre Anwendung der einzige Verbraucher ist. Der springende Punkt beim Erstellen einer REST-API besteht darin, eine öffentlich verfügbare Schnittstelle bereitzustellen, die Ihre Anwendungen gemeinsam nutzen können. Und der Schlüssel hier ist die Belichtung. Ihre REST-API wird der Welt zur Verfügung stehen und muss daher sicher sein. API-Authentifizierung und -Autorisierung sind keine einfachen Aufgaben. Wenn nur eine Anwendung Ihre API verwendet, warum sollten Sie dann alle Probleme lösen? Es sei denn natürlich, Sie möchten experimentieren und lernen. Wenn das der Fall ist, machen Sie es auf jeden Fall.
In jedem Fall sollte die Leistung kein Problem sein. Sie würden eine zusätzliche Ebene hinzufügen, sodass offensichtlich ein gewisser Overhead entsteht. Ob dieser Overhead jedoch erheblich ist oder nicht, hängt ganz von Ihrer Implementierung ab. Wenn Ihre REST-API der einzelne Endpunkt ist, ist es wahrscheinlich eine gute Idee, auch der Ort zu sein, an dem das Caching stattfindet. Und nicht nur das serverseitige Caching, eine REST-API erleichtert das Ausnutzen des Browsers ein wenig. Wenn Sie es richtig machen, kann sich die Gesamtleistung Ihrer Anwendung im Vergleich zu einem Nicht-REST-Ansatz erhöhen.
tl; dr: Baue keine Sachen, die keinen wirklichen Zweck haben (es sei denn, du lernst).