@opopsel_86x64

Как правильно организовать архитектуру API в Spring Boot приложении?

Здравствуйте.
Я создал веб-приложение с использование Spring boot, Spring security.
Перед тем, как показать пользователю страницу user_page, он проходит стандартную авторизацию, вводя логин и пароль. Далее он получается страницу user_page. На странице он производит некоторые операции, которые обновляют состояние сервера через ajax, для этого есть 3 end point'a которые принимают POST запрос. На этом этапе все работает.
Но у меня стоит задача, чтобы пользователь мог производить всё те же действия, но уже через API.

Как это работает сейчас.

Чтобы получить доступ к API, пользователь должен получить токен. Это абсолютно рандомный набор символов, который генерирует при регистрации пользователя. Пользователь может его получить на все той-же странице user_page. Далее любой запрос к API должен сопровождаться этим токеном. Т.к. API обращается к тем-же end point'ам что и страница user_page через ajax, то и ajax автоматически передает этот токен.

Все работает, но с точки зрения архитектуры - это ужасно.
Как правильно организовать API в данном случае?
Как производить авторизацию при подключении к API?
Стоит ли разделять end poin'ы для API и ajax, если они выполняют одинаковые задачи?

Чтобы внести немного ясности, API нужно для того, чтобы пользователь мог сделать все то же, что он делает на странице user_page, но быстрее, ибо он напишет свой клиент.
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы