Об этом уже спрашивали на SO раньше, но мне трудно найти эти прошлые вопросы и ответы. Я ответил как минимум на два, но я резюмирую, как на это обычно отвечают.
Лагерь 1: Не делайте SPA, это не имеет смысла. Ваша служба HATEOAS должна обслуживать все состояние таким образом, чтобы клиент мог интерпретировать их, а SPA - это, по сути, взлом.
Лагерь 2 (лагерь, в котором я нахожусь): вам понадобится способ сопоставить ссылки SPA на ссылки на вашем сервере.
Вы как бы описываете это, говоря о «всех необходимых шагах», чтобы добраться до нужного ресурса, но если ваша цель в конечном итоге сопоставляет это с API uri, почему бы и нет вставьте только это
https://spa.example/http://api.example/some/resource
Наличие URL-адресов для закладок, содержащих полный путь к вашему бэкэнду, означает, что вам не нужно перепрыгивать через сложные обручи, и ваш SPA является настоящим клиентом для API, который вы создаете.
Еще одним приятным преимуществом является то, что вы также можете легко указать своему клиенту на несколько сред live / dev.
Наконец, вы можете разрешить относительные URL-адреса и автоматически преобразовать их в URL-адрес API, сократив: От
https://spa.example/http://api.example/some/resource
до
https://spa.example/some/resource