Structuring an API-Heavy App: Best Practices and Lessons Learned