RESTful API для социальной медиа платформы, позволяющей пользователям регистрироваться, входить в систему, создавать посты, переписываться, подписываться на других пользователей и получать свою ленту активности
- Аутентификация и авторизация:
-
Пользователи могут зарегистрироваться, указав имя пользователя, электронную почту и пароль.
-
Пользователи могут войти в систему, предоставив правильные учетные данные.
-
API обеспечивает защиту конфиденциальности пользовательских данных, включая хэширование паролей и использование JWT.
- Управление постами:
-
Пользователи могут создавать новые посты, указывая текст, заголовок и прикрепляя изображения.
-
Пользователи могут просматривать посты других пользователей.
-
Пользователи могут обновлять и удалять свои собственные посты.
- Взаимодействие пользователей:
-
Пользователи могут отправлять заявки в друзья другим пользователям. С этого момента, пользователь, отправивший заявку, остается подписчиком до тех пор, пока сам не откажется от подписки. Если пользователь, получивший заявку, принимает ее, оба пользователя становятся друзьями. Если отклонит, то пользователь, отправивший заявку, как и указано ранее, все равно остается подписчиком.
-
Пользователи, являющиеся друзьями, также являются подписчиками друг на друга.
-
Если один из друзей удаляет другого из друзей, то он также отписывается. Второй пользователь при этом остается подписчиком.
-
Друзья могут писать друг другу сообщения.
- Подписки и лента активности:
-
Лента активности пользователя отображает последние посты от пользователей, на которых он подписан.
-
Лента активности поддерживает пагинацию и сортировку по времени создания постов.
- Обработка ошибок:
-
API обрабатывает и возвращает понятные сообщения об ошибках при неправильном запросе или внутренних проблемах сервера.
-
API осуществляет валидацию введенных данных и возвращать информативные сообщения при неправильном формате.
- Документация API:
-
API задокументировано с использованием Swagger.
-
Документация содержит описание доступных эндпоинтов, форматы запросов и ответов, а также требования к аутентификации.
-
Язык программирования: Java
-
Фреймворк: Spring Boot
-
База данных: PostgreSQL
-
Аутентификация и авторизация: Spring Security
-
Документация API: Swagger