Спецификация API для работы с сервером проверки на уникальность

Последнее изменение 25.04.2014

Запрос к серверу:

Адрес: http://{xxx.xxx.xxx.xxx}:{порт}/etxt_antiplagiat

POST-параметры для различных действий:

1) Получение текущего состояния сервера:

try=1

2) Постановка пакета в очередь на проверку

xmlUrl={Адрес к xml-пакету с текстами на проверку}
xmlAnswerUrl={Адрес к скрипту, принимающего результаты проверки, должен в конце возвращать "ok" латинскими символами (без кавычек)}


Примечание:

  • пакет успешно поставлен в очередь на проверку, если код ответа сервера Code=1
  • если скрипт, принимающий результаты проверки не будет возвращать в конце "ok", то сервер будет вновь и вновь повторять попытки отправки результатов проверки

Ответ сервера (в JSON формате):

Code - Возвращает код ответа сервера:

0 - Неизвестная ошибка
1 - Задача на пакетную обработку принята
3 - Неверно указан (или вообще не указан) адрес к xml-файлу с пакетом документов для обработки
4 - Неверно указан адрес при запросе к серверу (должен быть в форме http://{xxx.xxx.xxx.xxx}:{порт}/etxt_antiplagiat)
5 - Неверно указан (или вообще не указан) адрес к скрипту, принимающего результаты обработки проверки
6 - Запрос на состояние сервера успешно обработан
7 - Отсутствует доступ к Интернет
8 - Принята команда на остановку сервера
9 - Запрос на получение трассировочной информации с сервера успешно обработан
10 - Запрос отклонен из-за невозможности проверить доступ клиента к сервису. Можно повторить попытку немного позже
11 - Запрос отклонен из-за отсутствия доступа к сервису (скорей всего из-за нулевого баланса)

Description - Возвращает текстовое описание ответа сервера
NumPacketsInQueue - Возвращает текущее число пакетов в очереди
AvgDocumentTime - Возвращает среднее время обработки документа в пакете, в минутах. Будет меньше нуля, если пока эту характеристику невозможно вычислить
CurrentPacketTime - Текущее время обработки текущего пакета, в минутах (целое число).

Пример ответа:
{"Code":3,"Description":"В запросе отсутствует адрес с пакетом данных для обработки","NumPacketsInQueue":2,"AvgDocumentTime":-1.000000E+000, "CurrentPacketTime":0}

Получение результата:

Результат получает скрипт, адрес которого был указан в POST-параметре при запросе к серверу. Ему будут доступны следующие POST-поля:

  • XmlFileName - Имя файла Xml-пакета с документами
  • NumDocsInPacket - Число документов в пакете
  • PacketTime - Время обработки пакета, в минутах
  • DocumentTime - Среднее время обработки документа в пакете, в минутах
  • ServerType - Параметр, полученный от клиента в Xml-пакете при запросе
  • TotalWords - Общее число слов всех документов из пакета после канонизации
  • Xml - Результат проверки Xml-пакета, зашифрованный, а затем и кодированный в Base64
  • Error - Содержит ошибку, если не удалось проверить Xml-пакет (в этом случае все строковые POST-поля будут пустыми (кроме XmlFileName), а целочисленные - нулевые). Закодирован в Base64

Формат Xml-пакета (ЗАПРОС)

Примечания:

  • символами [] обозначается опциональность присутствия узлов/атрибутов
  • если узел text при запросе имеет атрибут returnPicture="true", то содержимое узла ftext в ответе будет в виде картинки, закодированной в Base64
  • текст на проверку берется либо из поля text, либо из doc-файла, расположенного по адресу из поля docurl (тестовая возможность, обсуждается в индивидуальном порядке, так как требует аренды Windows сервера)

Формат Xml-пакета (ОТВЕТ)

Примечания:

  • символами [...] обозначается опциональность присутствия узлов/атрибутов
  • если уникальность проверенного текста = 100, то поле ftext отсутствует
  • если узел text при запросе имел атрибут returnPicture="true", то содержимое узла ftext в ответе будет в виде картинки, закодированной в Base64
  • в полях url возвращаются (максимум 5) url страниц с наибольшим процентом совпадений с проверяемым текстом
  • при использовании antigate поля capthas_from_* всегда будут равны нулю

PHP-класс для общения с сервером проверки на уникальность

Постановка задания на проверку

Получение ответа от сервера

Поделиться с друзьями