Вообще оба варианта приемлимые, но расскажу свой опыт:
1. Возникает требование создать фичу
2. Фронт, бэк, и ещё какие-то люди собираются и обсуждают её. Фронт и Бэк договариваются о том, каким должен быть API
3. Создаются интерфейсы для апи и дтошки
(На этом моменте фронт уже может писать код, пока сервер не готов)
Таким образом сервер и клиент не зависят друг от друга, но при этом всегда согласованы.