/SpringUserService

RESTFul api для работы с пользователями

Primary LanguageJava

 RESTfull api для работы с пользователя.

 Модель данных :
 Сущность User (Пользователь)
 Код уникальный Long id
 Ник String nick
 Логин String login
 эл. почта String email
 Массив достижений  List<UserAchievement> achievements  связь один-ко-многим
 Сущность UserAchievement (Достижение пользователя)
 Код в БД Long id
 Достижение String achievement

 Класс UserList являеться утилитарным , создан из-за особенности маршалинга xml когда должен быть корневой тег
 внутри него список возвращаемого список пользователей.

 Особенности:
 spring-data-jpa надстройка на hibernate и jpa пользоляет в интерфейсе сразу определить запросы

 Авторизация реализована через фильтр , токен указываеться в заголовке через Authorization,
 по умолчанию токен 12345 (curl -H "Authorization:12345" http://localhost:8080/user/id/1/json)
 В случае если авторизация не прошла возврожаеться код 403

 Все методы вместе с данным возвращают статус
  * HttpStatus.OK если все прошло хорошо и небыло ошибок
  * HttpStatus.NO_CONTENT если нечего не нашлось
  * HttpStatus.BAD_REQUEST если параметры null


 Интерфейс :

    * /user/id/{id}/{xml|json} получение пользователя по id (curl -H "Authorization:12345" http://localhost:8080/user/id/1/json)
    * /user/nick/{nick}/{xml|json} получение списка пользователей по nick
    * /user/email/{email}/{xml|json} получение списка пользователей по email
    * /user/update обновление пользователя (изменение ника, email) update указывает какой поле обновить (nick , email), id Пользователя, value Новое значение (  curl -H "Authorization:12345" -s -d "update=nick&id=1&value=test" http://localhost:8080/user/update )
    * /user/achievement/add установка достижения id Пользователя,  achievement достижение ( тип String )  (  curl -H "Authorization:12345" -s -d "id=1&achievement=test" http://localhost:8080/user/achievement/add )


  В maven два профиля development и prodaction по умолчанию включен development

 Запуск :
 mvn jetty:run-war - запускает локальный сервер jetty с построением war
 или mvn jetty:run - запускает локальный сервер jetty с без построения war
 Для создания в продакшен
 mvn -P production package