Todo REST API server on golang
URL | Method | Description |
---|---|---|
/api/v1/sessions | post | Создать сессию |
delete | Удалить сессию | |
/api/v1/users | post | Регистрация пользователя |
/api/v1/private/todos | get | Получить все задачи пользователя |
post | Добавить задачу | |
/api/v1/private/todos/(todoID) | patch | Обновить данные задачи |
delete | Удалить задачу | |
/api/v1/private/todos/find?completed=false | post | Получить завершённые (false) или активные (true) задачи |
/api/v1/private/todos/count | get | Получить количество записей в таблице |
/api/v1/private/todos/find/count?completed=true | get | Получить количество завершённых (false) или активных (true) задач |
/api/v1/private/users | get | Получить данные пользователя (авторизованного) |
patch | Обновить данные пользователя |
- /api/v1/sessions - post
{
"login": "user0",
"password": "12345"
}
- /api/v1/users - post
{
"login": "user0",
"password": "12345"
}
- api/v1/private/todos - post
{
"title": "Title"
}
- api/v1/private/todos - patch
{
"column": "completed",
"value": "true"
}
{
"column": "title",
"value": "new title"
}
- api/v1/private/users - patch
{
"column": "name",
"value": "name"
}
{
"column": "password",
"value": "password"
}
Команды работают на linux и mac os
Для корректной работы make необходимо заполнить поля в Makefile для доступа к БД
user = ""
password = ""
host = ""
port = ""
sslmode = ""
db_dev = ""
db_test = ""
- Собрать и запустить проект
$ make
- Собрать и запустить проект (default)
$ make start
- Собрать проект
$ make build
- Запустить тесты
$ make test
- Создать миграцию
$ make migrate-create
- Создать таблицы для баз test и dev
$ make migrate-up
- Создать таблицы для dev
$ make migrate-dev-up
- Создать таблицы для test
$ make migrate-test-up
- Удалить таблицы в dev и test
$ make migrate-down
- Удалить таблицу dev
$ make migrate-dev-down
- Удалить таблицу test
$ make migrate-test-down
Создать в корне файл .env и добавить поля.
BIND_ADDR = ""
LOG_LEVEL = ""
SESSION_KEY = ""
DB_HOST = ""
DB_PORT = ""
DB_USER = ""
DB_PASSWORD = ""
DB_DATABASE = ""
DB_SSLMODE = ""
Для запуска тестов необходимо создать файл .env и добавить поля
DB_TEST_HOST = "192.168.0.20"
DB_TEST_PORT = "5432"
DB_TEST_USER = "postgres"
DB_TEST_PASSWORD = "0000"
DB_TEST_DATABASE = "todo_test"
DB_TEST_SSLMODE = "disable"