Skip to content

youngpopeugene/VkService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tech task

Необходимо разработать интеграционный 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

P.S

⭐ Перед началом работы с приложением необходимо зарегистрироваться (api/v1/auth/register)

⭐ В качестве Response вернется JWT токен

⭐ В последующие запросы (api/v1/vk/getInfo) нужно добавлять заголовок "Authorization: Bearer ...токен..."

⭐ Иначе в доступе будет отказано (403 Forbidden)

⭐ Если регистрация не требуется, то в результате залогинивания JWT токен также вернется в качестве Response

Releases

No releases published

Packages

 
 
 

Contributors

Languages