Skip to content

Современный REST API сервис для управления заметками.

Notifications You must be signed in to change notification settings

AlexandrTomashevich/RestAPI_KODE

Repository files navigation

RestAPI_KODE

Описание:

Данный сервис, предоставляет из себя REST API интерфейс с методами;

  • добавление заметок
  • вывод списка заметок, пользователь (user) имеет доступ только к своим заметкам, администратор (admin) имеет доступ ко всем заметкам (Данные хранятся в PostgreSQL).
  • Сервис интегрирован с Яндекс.Спеллер (валидация орфографических ошибок).
  • В сервисе предусмотрена аутентификация и авторизация.
  • Так же прописаны основные тесты.

Запуск сервиса:

  1. Развернуть (запустить) сервис в Docker-контейнере
docker-compose up --build

После запуска сервис будет слушать порт 8080. 2) Регистрация (создание/авторизация) пользователя. В postman выбираем метод POST переходим к http://localhost:8080/users указав в теле запроса следующие поля {
"username": "example_user", "password": "password123", "role": "user" } Получаем id пользователя и токен (можем переходить сразу к 4 пункту). 3) Если мы уже авторизованы в сервисе, тогда можете пропустить 2 пункт и проходить аутентификацию. В postman выбираем метод POST переходим к http://localhost:8080/auth указав в теле запроса следующие поля { "username": "example_user", "password_hash": "password123" } Получаем данные пользователя и токен. 4) Теперь у вас есть токен пользователя с ролью 'user', и вы можете создать заметку. В postman выбираем метод POST переходим к http://localhost:8080/notes в разделе Auth раздел Type выбираем Bearer Token и в поле вставляем ваш токен который вы получили на предыдущем шаге. После чего в разделе Body создаем заметку по примеру ниже: { "content": "This is a test note." }

Вы можете написать заметку с ошибками они будут автоматически исправлены сервисом Яндекс.Спеллер перед сохранением заметки в БД. Нажмите "Send". 5) Если все выполнено правильно, вы должны получить ответ с данными созданной заметки. 6) Для просмотра своих заметок выполняем 4 пункт, но меням метод на GET и тело запроса указывать не обязательно.

Последовательность реализации

  1. Обработчики API: Для начала создал роуты и основные функции обработчики для создания и получения заметок. Настройка соединения с PostgreSQL; Определение модели данных для заметок; Определение модели данных для пользователя; Реализация API-методов;
  2. Аутентификация и авторизация: Использовал базовую аутенификацию, авторизация написана на основе ролей, чтобы разделить пользователей на 2 группы: "admin" и "user". Пароли хранятся в зашифрованном виде.
  3. Интеграция с Яндекс.Спеллер: Перед сохранением заметки для проверки правописания делается http-запрос к API Яндекс.Спеллера.
  4. Логирование: Использовал стандартный пакет 'log'.
  5. Запуск сервера: Использовал net/http и библиотеку gorilla.

About

Современный REST API сервис для управления заметками.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published