Необходимо разработать интеграционный RESTful сервис на Java для получения ФИО пользователя VK, а также признака участника группы VK. Для работы с VK следует использовать API Вконтакте.
Техническое описание сервиса: Сервис должен реализовывать REST-метод на вход принимающий HTTP заголовок vk_service_token и тело запроса в формате JSON вида:
{
"user_id": 239,
"group_id": 239
}Где:
- user_id - идентификатор пользователя VK
- group_id - идентификатор группы VK
- vk_service_token - сервисный ключ приложения VK используемый для вызовов API VK
В ответ должно приходить тело в формате JSON вида:
{
"last_name": "youngpope",
"first_name": "eugene",
"member": true
}Где:
- last_name - фамилия пользователя user_id
- first_name - имя пользователя user_id
- member - признак того, что пользователь состоит в группе group_id
Рекомендуемые фреймворки и библиотеки:
- Spring Boot
- Apache Camel
- Jackson
✅ Валидация запросов на предмет корректности формата передаваемых полей
✅ Обработка ошибок от VK с выдачей информативного ответа
✅ JSON Web Token (JWB) авторизация для API приложения (шифрование пароля - BCrypt)
✅ База данных PostgreSQL в контейнере Docker
✅ Кэширование ответов на стороне приложения
✅ Swagger документация
✅ JUnit тесты
❌ Сборка и деплой приложения в облако (minikube/minishift)
git clone https://github.com/youngpopeugene/VkService.git
cd VkService
docker-compose build && docker-compose up
mvn spring-boot:run
Запуск JUnit тестов:
mvn clean test
Swagger документация будет доступна по ссылке:
http://localhost:8080/swagger-ui/index.html
⭐ Перед началом работы с приложением необходимо зарегистрироваться (api/v1/auth/register)
⭐ В качестве Response вернется JWT токен
⭐ В последующие запросы (api/v1/vk/getInfo) нужно добавлять заголовок "Authorization: Bearer ...токен..."
⭐ Иначе в доступе будет отказано (403 Forbidden)
⭐ Если регистрация не требуется, то в результате залогинивания JWT токен также вернется в качестве Response