Skip to content

Создание, изменение и получение профилей. Получение сведений об ошибках приложения.

Notifications You must be signed in to change notification settings

FormAToz/ProfileService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

REST-сервис по управлению профилями пользователей

Функционал

Создание, изменение и получение профилей. Получение сведений об ошибках приложения

Стэк

Описание Технологии и версии
Версия JDK 11
Порт 8010
Система контроля версий git
Spring Boot MVC, Data (2.3.2.RELEASE)
База данных PostgreSQL (42.2.19)
Миграция базы данных FlyWay (5.2.4)
Документация REST web-API Swagger (2.9.2)
Плагин компилятора Lombok (1.18.20)
Сборщик проекта Maven

Запуск проекта

Для запуска проекта необходимо передать 4 переменные окружения:

  • DB_NAME - имя базы данных
  • DB_USER - имя пользователя для базы данных
  • DB_PASSWORD - пароль для базы данных
  • SECRET_TOKEN - токен - строка для доступа к методам контроллера

Запустить проект можно 2 способами:

  1. Клонировать с репозитория командой git clone https://github.com/FormAToz/ProfileService.git и запустить в среде разработки, настроив переменные окружения.
  2. Запустить прилагаемый jar-файл (с заполненными значениями переменных окружения) командой java -DDB_NAME=<имя_бд> -DDB_USER=<пользователь_бд> -DDB_PASSWORD=<пароль_бд> -DSECRET_TOKEN=<токен> -jar ProfileService-1.0.jar

Примеры запросов

Все запросы с префиксом /profiles и /error необходимо выполнять с заголовком авторизации "Bearer <secret_token>">. Все запросы с ошибочным токеном возвращают статус код - 401 (Unauthorized).

Доступ к REST API Swagger - 'GET http://localhost:8010'

Метод производит переадресацию на страницу отображения Swagger API: http://localhost:8010/swagger-ui.html

Создание профиля - 'POST /profiles/set'

Метод сохраняет профиль в базу данных

Формат запроса:

{
    "name": "User",
    "email": "mail@mail.ru",
    "age": 30
}

Формат ответа:

В случае успеха возвращает id записи профиля (статус 200 ОК):

{
    "idUser": 1
}

В случае некорректного e-mail (статус 400 BAD_REQUEST):

{
    "msg": "error message"
}

В случае, если e-mail уже зарегестрирован (статус 403 FORBIDDEN):

{
    "msg": "error message"
}

Получение последнего созданного профиля - 'GET /profiles/last'

Метод возвращает последний созданный профиль

Формат ответа:

(статус 200 ОК)

{
    "id": 1,
    "name": "User",
    "email": "mail@mail.ru",
    "age": 30,
    "created": "2021-04-12T15:24:35"
}

Получение всех профилей - 'GET /profiles'

Метод возвращает список всех созданных профилей

Формат ответа:

(статус 200 ОК)

[
 {
     "id": 1,
     "name": "User",
     "email": "mail@mail.ru",
     "age": 30,
     "created": "2021-04-12T15:24:35"
 },
{...}
]

Получение профиля по id - 'GET /profiles/{id}'

Метод возвращает профиль по id

Формат ответа:

(статус 200 ОК)

{
    "id": 1,
    "name": "User",
    "email": "mail@mail.ru",
    "age": 30,
    "created": "2021-04-12T15:24:35"
}

В случае, если запись не найдена (статус 404 NOT_FOUND):

{
    "msg": "error message"
}

Получение профиля по e-mail - 'POST /profiles/get'

Метод возвращает профиль по e-mail

Формат запроса:

{
    "email": "mail@mail.ru"
}

Формат ответа:

(статус 200 ОК)

{
    "id": 1,
    "name": "User",
    "email": "mail@mail.ru",
    "age": 30,
    "created": "2021-04-12T15:24:35"
}

В случае, если запись не найдена (статус 404 NOT_FOUND):

{
    "msg": "error message"
}

Получение последней ошибки приложения - 'GET /error/last'

Метод возвращает последний созданный профиль

Формат ответа:

(статус 200 ОК)

{
    "msg": "error message",
    "created": "2021-04-12T15:24:35"
}

🌟 Закрытие приложения - 'GET /exit'

Метод переадресовывает на страницу http://localhost:8010/exit-success, выводит сообщение "Выход из приложения выполнен" и закрывает приложение.

About

Создание, изменение и получение профилей. Получение сведений об ошибках приложения.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages