Внешний API отдаёт всё по своим правилам: имена полей, вложенность, картинки, цены, пагинация — это хозяйство провайдера. UI же живёт в другой модели. И стоит компоненту полезть напрямую в
event._embedded.venues[0].city.name — структура чужого ответа тут же разъезжается по всему интерфейсу. Дёрнул API — и переписывай карточки, detail page, search, metadata и тесты.В App Router запрос можно унести на сервер: Server Components умеют
fetch, а серверный код в клиентский bundle не попадает. Значит, и API key не светится в браузере. Про server-side data fetching для App Router как раз есть в документации Next.js.В учебном проекте EventMap поток событий с внешнего источника идёт через server API слой.
Читать далее
👉 JS
