Для реализации сервера системы ведения личного и семейного бюджета используется язык PHP v5 с подключенными библиотеками для работы с сервером MySQL (для обращения к пользовательским данными) и Memchace (для хранения токенов пользователей в определенным временем жизни). В роли вебсервера выступает Apache 2.2.22 (Debian).
Для хранения и обработки данных в системе используется СУБД MySQL. На рисунке приведены спецификации таблиц физической модели данных.
Система требует, чтобы API позволяло работать со списком пользователей (добавление/удаление и аутентификация), со списком групп (создание группы, добавление пользователя в группу, удаление пользователя из группы) и со списком доходов/расходов (получение списка, добавление, редактирование и удаление записи).
POST-запрос к серверу передает данные через POST-параметры, остальные запросы (GET, PUT и DELETE) через GET.
Система возвращает данные, представленные в JSON-формате. В сообщении всегда содержится поле code с одним из значений описанных ниже. В случае ошибки поле data содержит строковое описание ошибки. Если code=200, запрос выполнен верно и это GET-запрос, то поле data содержит затребованные данные в JSON-формате.
Результат безошибочного выполнения GET запросов всегда содержит не пустое поле data. Результат безошибочного выполнения прочих запросов поле data не содержит.
-
Путь /user
- Метод GET — получить токен.
- Метод POST — зарегистрироваться в системе.
- Метод DELETE — удалить пользователя.
-
Путь /group
- Метод GET — получить список групп и пользователей в них.
- Метод PUT — обновить группу.
- Метод POST — создать группу.
- Метод DELETE — удалить группу.
-
Путь /item
- Метод GET — получить записи за месяц по категории.
- Метод PUT — изменить запись.
- Метод POST — добавить запись.
- Метод DELETE — удалить запись.
-
Путь /categories
- Метод GET — получить список суммарных расходов по категориям за указанный год-месяц.
Используемые коды ошибок:
- 200 - запрос выполнен верно.
- 400 - ошибка клиента: неправильная команда.
- 401 - ошибка клиента: пользователь не авторизован.
- 409 - ошибка клиента: коллизия.
- 500 - ошибка сервера.
Тип ЭВМ: любые, оснащенные интерпретатором языка PHP
Язык: PHP
ОС: UNIX-подобные
Объем программы: 13,6 Кб