Изменения в версии 1.2015-11-10
Методы API Сайта
Все запросы в ходе интеграции осуществляются методом POST в кодировке UTF-8 и Content-Type: application/json. Все значения параметров интерпретируются как строки, если это не оговорено дополнительно.
POST https://litera5.ru/api/pub/setup/
Настройки API Партнёра
Запрос SetupRequest (JSON)
Параметр | Пример значения | Обязательный | Описание | |
---|---|---|---|---|
новый параметр | onInitialStats | http://cms.company.ru/initial_stats.php | нет | URL в CMS Партнёра, на который будет отправлен запрос со статистикой по окончании первичной проверки документа пользователя. Так как ответ будет передан запросом POST, то `onInitialStats` не должен содержать параметров в формате "?param=value¶m1=value". |
изменён алгоритм | signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись запроса, формируется по алгоритму `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 "]. Если необходимо создать пользователя, которому не разрешено работать со словарём, то необходимо передать пустой список разрешений: []. Допустимые разрешения:
|
новый параметр | orthoKinds | ["mkSpelling", "mkGrammar"] | нет | Список типов аннотаций правописания, которые нужно показывать пользователю после проверки. Пустой список означает, что пользователю нужно будет выбирать их каждый раз после проверки документа. Возможные значения списка:
|
новый параметр | ciceroKinds | ["mkSynonym"] | нет | Список типов аннотаций алгоритма "Цицерон", которые нужно показывать пользователю после проверки. Пустой список означает, что пользователю нужно будет выбирать их каждый раз после проверки документа. Возможные значения списка:
|
изменён алгоритм | signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись запроса, формируется по алгоритму `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. Поэтому если вам нужно подписать свои произвольные дополнительные поля, то нужно выполнить следующие процедуры:
При формировании подписи запроса нужно собрать в строчку последовательно все элементы списка 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> с одним из следующих атрибутов:
|
изменён алгоритм | signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись запроса, формируется по алгоритму `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>"}] | нет | Отредактированные произвольные дополнительные поля |
изменён алгоритм | signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись запроса, формируется по алгоритму `md5(time + token + title + description + keywords + custom.map(name + value) + html + API_SECRET_KEY)` |
Новый метод: POST on-initial-stats (SetupRequest.onInitialStats)
Партнёру необходимо реализовать этот метод в своей CMS для того, чтобы иметь возможность получать статистический отчёт полученный в результате первой проверки документа. Это может понадобиться, например, в случае, если Партнёр желает отправлять документ на доработку только в случае наличия "критического" количества ошибок. На этот случай предполагается следующий алгоритм действий:
- После запроса CheckRequest создаётся iframe по соответствующей одноразовой ссылке, но не показывается пользователю, а запускается и прячется.
- Одновременно с этим запускается периодический опрос сервера CMS с ожиданием результатов проверки.
- Когда приходит этот запрос
Запрос InitialStatsRequest (JSON)
Параметр | Пример значения | Обязательный | Описание |
---|---|---|---|
time | 1410103972 | да | Текущее время в формате unix timestamp (количество секунд с 1970 года) |
token | любаяСтрока | да | Идентификатор переданный в ходе запроса CheckRequest.token. |
error | Сообщение об ошибке | нет | Сообщение о произошедшей ошибке. Одно из полей error или stats будет заполнено обязательно. И они не могут быть заполнены одновременно. Наличие сообщения об ошибке означает, что документ не смог провериться из-за проблем в Литере. |
stats | {"annotations": [], "words": []} | нет | JSON модель статистического отчёта (описание формата модели). |
signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись ответа, формируется по алгоритму `md5(time + token + cancelId + error + API_SECRET_KEY )` |
Ответ InitialStatsResponse (JSON)
Параметр | Пример значения | Обязательный | Описание |
---|---|---|---|
time | 1410103972 | да | Текущее время в формате unix timestamp (количество секунд с 1970 года) |
cancel | false | да | Значение true означает, что работа с документом завершена и не будет продолжена пользователем. |
signature | 5eb63bbbe01eeed093cb22bb8f5acdc3 | да | Электронная подпись ответа, формируется по алгоритму `md5(time + cancel + API_SECRET_KEY)` |