вот есть книга, но есть одно но книги очень быстро устаревают, особенно касаемо веб-разработки, так что не старайтесь особо зацикливаться на их прочтении.
Веб-приложение - работает по архитектуре клиент-сервер
Роль бэкэнда и фронтэнда проста для восприятия, бэкэнд серверная часть(сервер) приложения, по-сути разницы между бэкендом сервиса, сайта или мобильного приложения - нет,выполняют одну и туже функцию, сбор и обработка данных, предоставления данных в удобном формате клиенту. Что касаемо клиента (в частном случае фронтенда ) он может выполнять массу вещей, самое распростаненное это GUI ( формы, таблицы ,кнопочки и т.д.), который дает пользователю общаться с программой, вводить данные получать данные в различных формах, производить пред-валидацию данных ( Всегда проверяйте данные на сервере, будьте параноиком - не верьте не кому), и еще кучу всего .
API
API (интерфейс программирования приложений, интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай]) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.
wikipedia
и так если GUI для человека , то API интерфейс для программ, к примеру нам необходимо получать курс валют в в виде таблицы в нашем приложении , в этом случае мы как раз и будем использовать API сервиса, предоставляющего такую информацию.
REST -
хорошая статья