Я создаю приложение Angular front-end, которое потребляет данные от API Strava. Я создал службу back end в узлах и ExpressJS, где хранится мой идентификатор клиента и секрет клиента, и перенаправляет пользователя на страницу аутентификации Стравы, чтобы они могли разрешить моему приложению запрашивать их данные.
После аутентификации Strava перенаправляет пользователя обратно в мое приложение с его токеном доступа в качестве параметра строки запроса. Маркер доступа должен быть отправлен в API с каждым последующим запросом.
Мне интересно, за какие плюсы и минусы, как делать запросы к API. Насколько я понимаю, у меня есть следующие варианты:
Храните клиентскую часть токена доступа в файле cookie и отправляйте запросы напрямую API Strava с лицевой стороны. Это нужно сделать с помощью JSONP из-за той же политики происхождения. (API Strava поддерживает JSONP).
Сохраните сторону сервера токена доступа в переменной сеанса в моем приложении-узле и выполните все запросы через сервер узлов. Я бы создал свой собственный API, чтобы интерфейс мог взаимодействовать с узловым приложением.
Каковы плюсы и минусы каждого подхода?
Для чего-то нетривиального подхода на стороне сервера - это путь. Создание вашего собственного REST API дает вам большую гибкость, и это помогает вам отделить свои проблемы - ваше приложение с угловыми углами, вероятно, не лучшее место для использования в логике REST API.
Каждый поставщик REST API имеет ограничение скорости/квоты своего API. Таким образом, каждый запрос в реальном времени через ваше приложение Angular API Strava не может быть вариантом. Возможно, вам понадобится создать какую-то службу фона, которая кэширует необходимые данные из базы данных Strava в определенный промежуток времени. Затем вы показываете данные кэширования для своих пользователей каждый раз, когда они запрашивают ваш веб-сайт.