Для вызова Api необходимо отправить POST-запрос на server.php содержащий параметр method
с названием вызываемого метода и параметры запроса для соответствующего метода (если они есть)
Обработка запроса последовательная, то есть, если требуется запись в БД, она завершится перед тем, как будет сформирован ответ от Api.
Сервер присылает ответы в формате JSON
Если параметр
method
не передан или не существует, будет возвращена ошибка:0: Неверный запрос к Api
- Обработка и возвращение ошибок в методах Api
- Некоторые операции на сервере можно запускать в других потоках (ускорение Api)
{natural} - числовой ({number}), целый, положительный (натуральные числа)
пример использования Api
let data = {name: 'Поручик Ржевкий'}, // Параметры запроса
method = 'tag.add'; // Запрашиваемый метод Api
api(method, data)
.then(resolve) // Обработка ответа в случае успеха
.catch(reject) // Обработка ответа в случае ошибки
function resolve(response) {
alert('Тег успешно сохранён!');
}
function reject(error) {
alert('Не удалось сохранить тег');
}
параметры: [отсутствуют]
результат: массив тегов, каждый элемент - объект с полями {id, name, hide}
tag.add
- Добавление нового тега: $response = Tag::add(_::str('name')); break; // Добавление нового тега
параметры: {string} name
- название тега
результат: массив тегов, каждый элемент - объект с полями {id, name, hide}
(аналогично методу tag.all
)
параметры: [отсутствуют]
результат: массив анекдотов, каждый элемент - объект с полями {id, number, caption}
параметры:
{string} caption - название анекдота
{natural} number - номер анекдота (необязательно, вроде... не помню)
{string} text - текст анекдота (первая версия)
{string} name - название анекдота
результат: массив анекдотов, каждый элемент - объект с полями {id, number, name}
(аналогично методу anekdot.all
)
параметры: {natural} id
- идентификатор анекдота
результат: объект с информацией об анекдоте
{
id: ИДЕНТИФИКАТОР АНЕКДОТА,
caption: НАЗВАНИЕ АНЕКДОТА,
number: НОМЕР АНЕКДОТА (если есть),
version: [ // СПИСОК ВЕРСИЙ АНЕКДОТА
{anekdot, name, text}
],
tag: [
СПИСОК ТЕГОВ АНЕКДОТА
]
}
параметры:
{natural} anekdot - идентификатор анекдота
{string} version - версия текста анекдота
{string} name - название версии анекдота
результат: массив версий текстов анекдота (@todo? возвращать полную информацию об анекдоте)
параметры:
{natural} anekdot - идентификатор анекдота
{natural} number - устанавливаемый номер
TODO: запретить добавление одинаковых номеров (зависит от: Обработка и возвращение ошибок в методах Api)
результат: информация об анекдоте (аналогично методу anekdot.get
)