Skip to content

Давно сидим, все анекдоты пронумеровали...

Notifications You must be signed in to change notification settings

greenprojectme/anekdot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сайт с пронумерованными анекдотами

Запросы к Api

Для вызова Api необходимо отправить POST-запрос на server.php содержащий параметр method с названием вызываемого метода и параметры запроса для соответствующего метода (если они есть)

Обработка запроса последовательная, то есть, если требуется запись в БД, она завершится перед тем, как будет сформирован ответ от Api.

Ответы Api-сервера

Сервер присылает ответы в формате JSON

Если параметр method не передан или не существует, будет возвращена ошибка: 0: Неверный запрос к Api

TODO

  • Обработка и возвращение ошибок в методах Api
  • Некоторые операции на сервере можно запускать в других потоках (ускорение Api)

Дополнительные типы данных

{natural} - числовой ({number}), целый, положительный (натуральные числа)

Описание методов Api

пример использования Api

let data = {name: 'Поручик Ржевкий'}, // Параметры запроса
  method = 'tag.add';                 // Запрашиваемый метод Api

api(method, data)
  .then(resolve)                      // Обработка ответа в случае успеха
  .catch(reject)                      // Обработка ответа в случае ошибки

function resolve(response) {
  alert('Тег успешно сохранён!');
}
function reject(error) {
  alert('Не удалось сохранить тег');
}

Секция tag: Работа с тегами

tag.all - список всех тегов

параметры: [отсутствуют]

результат: массив тегов, каждый элемент - объект с полями {id, name, hide}

tag.add - Добавление нового тега: $response = Tag::add(_::str('name')); break; // Добавление нового тега

параметры: {string} name - название тега

результат: массив тегов, каждый элемент - объект с полями {id, name, hide} (аналогично методу tag.all)

Секция anekdot: Работа с анекдотами

anekdot.all - список всех анекдотов

параметры: [отсутствуют]

результат: массив анекдотов, каждый элемент - объект с полями {id, number, caption}

anekdot.add - добавление анекдота

параметры:

{string} caption - название анекдота
{natural} number - номер анекдота (необязательно, вроде... не помню)
{string} text    - текст анекдота (первая версия)
{string} name    - название анекдота

результат: массив анекдотов, каждый элемент - объект с полями {id, number, name} (аналогично методу anekdot.all)

anekdot.get - информация об анекдоте (возвращает анекдот со всеми версиями и т.д.)

параметры: {natural} id - идентификатор анекдота результат: объект с информацией об анекдоте

{
  id: ИДЕНТИФИКАТОР АНЕКДОТА,
  caption: НАЗВАНИЕ АНЕКДОТА,
  number: НОМЕР АНЕКДОТА (если есть),
  version: [ // СПИСОК ВЕРСИЙ АНЕКДОТА
    {anekdot, name, text}
  ],
  tag: [
    СПИСОК ТЕГОВ АНЕКДОТА
  ]
}
anekdot.upd - добавление версии текста анекдота

параметры:

{natural} anekdot - идентификатор анекдота
{string}  version - версия текста анекдота
{string}  name    - название версии анекдота

результат: массив версий текстов анекдота (@todo? возвращать полную информацию об анекдоте)

anekdot.num - установка номера анекдота

параметры:

{natural} anekdot - идентификатор анекдота
{natural} number  - устанавливаемый номер
TODO: запретить добавление одинаковых номеров (зависит от: Обработка и возвращение ошибок в методах Api)

результат: информация об анекдоте (аналогично методу anekdot.get)

roadmap (список методов для реализации)

About

Давно сидим, все анекдоты пронумеровали...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published