earlredwolf/SpringUserService
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
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