litera5.api.v1.2015-11-10

Изменения в версии 1.2015-11-10

Методы API Сайта

Все запросы в ходе интеграции осуществляются методом POST в кодировке UTF-8 и  Content-Type: application/json. Все значения параметров интерпретируются как строки, если это не оговорено дополнительно.

POST https://litera5.ru/api/pub/setup/

Настройки API Партнёра

Запрос SetupRequest (JSON)

 ПараметрПример значенияОбязательныйОписание
новый параметрonInitialStatshttp://cms.company.ru/initial_stats.phpнетURL в CMS Партнёра, на который будет отправлен запрос со статистикой по окончании первичной проверки документа пользователя. Так как ответ будет передан запросом POST, то `onInitialStats` не должен содержать параметров в формате "?param=value&param1=value".
изменён алгоритмsignature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись запроса, формируется по алгоритму `md5(time + company + onSaveCorrected + onIFrameFailure + onInitialStats + returnIcon + returnCaption + cancelIcon + cancelCaption + allowResizeImages + showCancelButton + editorCss + getStats + API_SECRET_KEY )`. Если какие-то поля отсутствуют в запросе, то при вычислении подписи они заменяются пустой строкой.

POST https://litera5.ru/api/pub/user/

Функция для создания и обновления информации о пользователях. Если пользователь с указанным логином существует в базе, то его пароль или имя будут установлены в соответствие с запросом. Если же пользователя с указанным логином не существует, то он будет создан в базе данных Сайта.

Запрос UserRequest (JSON)

 ПараметрПример значенияОбязательныйОписание
новый параметрpermissions["USE_DICTIONARY"]нет

Список разрешений для пользователя. Для вычисления signature все значения собираются в строчку без каких либо разделителей. Если при создании пользователя никаких разрешений не указано, то считается, что пользователь создаётся с разрешениями по умолчанию, а именно: ["USE_DICTIONARY "]. Если необходимо создать пользователя, которому не разрешено работать со словарём, то необходимо передать пустой список разрешений: [].

Допустимые разрешения:

  • USE_DICTIONARY – Работа с корпоративным словарём (добавлять, редактировать)
новый параметрorthoKinds["mkSpelling", "mkGrammar"]нет

Список типов аннотаций правописания, которые нужно показывать пользователю после проверки. Пустой список означает, что пользователю нужно будет выбирать их каждый раз после проверки документа. Возможные значения списка:

  • mkSpelling – орфография
  • mkGrammar - грамматика

  • mkPunctuation - пунктуация

  • mkStyle - стилистика

  • mkSemantic - семантика

  • mkTypography - типографика

  • mkOrthoepy - орфоэпия

  • mkYo - буква ё

  • mkPaperStructure - оформление

новый параметрciceroKinds["mkSynonym"]нет

Список типов аннотаций алгоритма "Цицерон", которые нужно показывать пользователю после проверки. Пустой список означает, что пользователю нужно будет выбирать их каждый раз после проверки документа. Возможные значения списка:

  • mkSynonym - синонимы

  • mkEpithet - эпитеты

изменён алгоритмsignature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись запроса, формируется по алгоритму `md5(time + company + login + name + password + permissions + orthoKinds + ciceroKinds + API_SECRET_KEY )`.

POST  https://litera5.ru/api/pub/check/

Инициирует процедуру проверки документа. 

Запрос на проверку документа CheckRequest (JSON)

 ПараметрПример значенияОбязательныйОписание
новый параметрcustom[{"name": "description", "value": "<p>Дополнительное описание документа</p>"}]нет

Список дополнительных произвольных полей для проверки. Каждый элемент списка – это объект с атрибутами: name, value. name – это название произвольного поля, value – это html для проверки.

Важно! На проверку нужно передавать именно html, а не простой текст. Простой текст лучше обернуть тэгом <p></p>. Это связано с особенностями реализации дополнительных полей в редакторе. На деле – это обычные <div></div> визуально оформленные специальным образом. Если внутри такого <div> будет находиться элемент <p>, то при нажатии клавиши Enter редактор создаст новый параграф в элементе <p> внутри элемента <div>. Если же разместить текст непосредственно внутри <div> без дополнительного элемента <p>, то при нажатии клавиши Enter, редактор сдублирует элемент <div> в котором располагался текст. Поэтому, если текст для проверки в дополнительных полях будет передан без обёртки в html тэги, то он будет обёрнут в тэг <p> принудительно. Необходимо иметь это ввиду.

Для того, чтобы пользователь видел какое именно дополнительное поле он редактирует можно добавить текстовую метку с описанием поля. Текстовая метка располагается над выделенным блоком дополнительного поля. Текстовые метки реализованы при помощи CSS. Поэтому если вам нужно подписать свои произвольные дополнительные поля, то нужно выполнить следующие процедуры:

  • скачать архив с материалами PHP API
  • из каталога examples взять файл примера custom.css
  • для каждого вашего дополнительного поля добавить в него следующий блок:
    • .litera5-meta .meta-custom-<NAME>:before {
      content: 'Ваша метка для поля:'
      }
    • вместо <NAME> необходимо использовать название вашего дополнительного поля, совпадающее со значением атрибута name соответствующего объекта в списке custom
  • разместить полученный CSS файл в своей CMS
  • настроить API Литеры методом setup, чтобы она использовала этот файл для работы с документом (параметр editorCss метода setup)
При формировании подписи запроса нужно собрать в строчку последовательно все элементы списка custom без разделителей, сначала name, а затем value. Например: список [{name: "n1", value: "v1"}, {name: "n2", value: "v2"}] станет строчкой "n1v1n2v2"
добавлены новые возможностиhtml<h1>Загаловак</h1><p>текст с ашипками</p>нет

Собственно текст для проверки в формате html. Если указан `document`, и не указан `html`, тогда откроется редактор с последней версией документа сохранённого на Сайте. Если текст указан, то он заместит собой текст выбранного `document` или инициирует процесс создания нового документа. Либо `documentId` либо `html` должно быть обязательно указано.

Для того, чтобы в редакторе показывались иллюстрации к тексту, нужно в поле `src` тэга `img` указывать абсолютный путь к файлу иллюстрации. Если вам необходимо сохранить какие-то дополнительные атрибуты тэгов, то их можно сохранить в атрибутах с префиксом `data-litera5-api-`. Например, в вашей базе данных хранятся относительные пути к иллюстрациям, или пути с переменными чтобы редактор смог корректно отобразить иллюстрации в атрибут `src` нужно поместить абсолютную ссылку, но хочется сохранить и внутреннюю ссылку, её можно поместить в атрибут `data-litera5-api-src` при отправке на проверку и восстановить из этой ссылки при получении результатов.

Если возникает необходимость исключить из проверки какие-то части текста, например, примеры кода программ, сложные таблицы, галереи изображений и тому подобное, то для этого нужно поместить соответствующие блоки html в <div></div> с одним из следующих атрибутов:

  • data-litera5-nocheck – когда нужно исключить содержимое элемента из проверки.
  • data-litera5-hidden – когда нужно исключить содержимое элемента из проверки и вообще не показывать его пользователю
изменён алгоритмsignature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись запроса, формируется по алгоритму `md5(time + company + login + token + document + name + title + description + keywords + custom.map(name + value) + html + API_SECRET_KEY)`.

Методы API Партнёра

Все запросы в ходе интеграции осуществляются методом POST в кодировке UTF-8 и  Content-Type: application/json. Все значения параметров интерпретируются как строки, если это не оговорено дополнительно.

POST on-save-corrected (SetupRequest.onSaveCorrected)

Партнёру необходимо реализовать этот метод в своей CMS для того, чтобы сохранять документы откорректированные в системе Сайта.

Запрос SaveCorrectedRequest (JSON)

 ПараметрПример значенияОбязательныйОписание
новый параметрcustom[{"name": "description", "value": "<p>Дополнительное описание документа</p>"}]нетОтредактированные произвольные дополнительные поля
изменён алгоритмsignature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись запроса, формируется по алгоритму `md5(time + token + title + description + keywords + custom.map(name + value) + html + API_SECRET_KEY)`

Новый метод: POST on-initial-stats (SetupRequest.onInitialStats)

Партнёру необходимо реализовать этот метод в своей CMS для того, чтобы иметь возможность получать статистический отчёт полученный в результате первой проверки документа. Это может понадобиться, например, в случае, если Партнёр желает отправлять документ на доработку только в случае наличия "критического" количества ошибок. На этот случай предполагается следующий алгоритм действий:

Запрос InitialStatsRequest (JSON)

ПараметрПример значенияОбязательныйОписание
time1410103972даТекущее время в формате unix timestamp (количество секунд с 1970 года)
tokenлюбаяСтрокадаИдентификатор переданный в ходе запроса CheckRequest.token.
errorСообщение об ошибкенетСообщение о произошедшей ошибке. Одно из полей error или stats будет заполнено обязательно. И они не могут быть заполнены одновременно. Наличие сообщения об ошибке означает, что документ не смог провериться из-за проблем в Литере.
stats{"annotations": [], "words": []}нетJSON модель статистического отчёта (описание формата модели).
signature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись ответа, формируется по алгоритму `md5(time + token + cancelId + error + API_SECRET_KEY )`

Ответ InitialStatsResponse (JSON)

ПараметрПример значенияОбязательныйОписание
time1410103972даТекущее время в формате unix timestamp (количество секунд с 1970 года)
cancelfalseдаЗначение true означает, что работа с документом завершена и не будет продолжена пользователем.
signature5eb63bbbe01eeed093cb22bb8f5acdc3даЭлектронная подпись ответа, формируется по алгоритму `md5(time + cancel + API_SECRET_KEY)`