Skip to content
Denis Koronchik edited this page Feb 15, 2016 · 84 revisions

Данное приложение обеспечивает связь клиентской части с базой знаний (в этот функционал входит: получение содержимого sc-ссылок, получение команд меню, инициирование команд и т. д.)

Ajax api

Данное api используется для взаимодествия клиентской части приложения с базой знаний. Сразу оговоримся, что в качестве id (sc-адреса) sc-элемента выступает строка, которая используется клиентской частью лишь для идентификации синонимичных sc-элементом и может иметь любой формат.

api/idtf/resolve/

Адрес Метод Тип запроса
api/idtf/resolve/ api.IdtfResolve POST

Описание

Получение идентификаторов объектов. С использованием текущего режима диалога.

Параметры

  • [j]_ - id (sc-адрес) sc-элемента идентификатор которого необходимо получить. Число j менятеся от 1 до N, где N - количество sc-элементов идентификаторы которых запрашиваются
  • Пример параметров запроса:
1_=0_1886&
2_=0_2377&
3_=0_2381

Результат

Возвращает json в котором содержится лишь один объект, который представляет собой аналог карты ключ-значение. В качестве ключа (имен аттрибутов) используются id (sc-адреса) sc-элементов, для которых делался запрос, а в качестве значений - строки, которые содержат идентификаторы. Важно отметить, что если для указанного sc-элемента не существует идентификатора на указанном языке, то он отсутсвует в ответе (нет такого ключа). Пример json ответа:

{
 "0_1886": "Раздел. SCs-код",	
 "0_2377": "Просмотр структуры",	
 "0_2381": "Поиск декомпозиции"
}

api/init

Адрес Метод Тип запроса
api/init api.Init GET

Описание

Получение стартовой информации о системе. В эту информацию входи список доступных пользовательских команд в главном меню, список возможных внешних языков (на которых может проимходить диалог), список возможных естественных языков

Параметры

Параметров нет

Результат

Возвращает json в котором содержатся следующие поля:

  • menu_commands - иерархия пользовательских команд. Каждая команда описывается одним объектов, в котором присутствуют следующие поля:
    • childs - список дочерних команд. В данном поле содержится список объектов описывающих дочерние команды
    • id - id (sc-адрес) узла обозначающего команду
    • cmd_type - строка, которая содержит тип команды. Данное поле может иметь 3 значения:
      • cmd_atom
      • - атомарная команда
      • cmd_noatom
      • - неаторманая команда
      • unknown
      • - команда неизвестного типа
    Корневым элементом в возвращаемой иерархии является sc-узел обозначающий главное меню. Он всегда является неатомарной командой и не отображается на экране (отображаются лишь дочерние команды)
  • external_languages - Список id (sc-адресов) элементов, которые обозначают доступные внешние языки (SCn, SCg, ...)
  • languages - Список id (sc-адресов) элементов, которые обозначают доступные естественные языки диалога (русский, английский и т. д.)
  • user - информация о пользователе. Содержит следующие поля:
    • sc_addr - sc-адрес узла обозначающего пользователя
    • is_authenticated - флаг указывающий на то, что пользователь авторизировался
    • current_lang - используемый пользователем язык (естественный язык)
    • default_ext_lang - исопльзуемый по умолчанию внешний язык (SCg-код, SCn-код и т. д.)

Пример json ответа:

{
 menu_commands:
 {
  childs: 
  [
   {
    id: "0_732",
    cmd_type: "cmd_atom"
   },
   {
    id: "0_702",
    cmd_type: "cmd_atom"
   },
   {
    id: "0_731",
    cmd_type: "cmd_atom"
   },
   {
    childs: 
     [
      {
       id: "0_856",
       cmd_type: "cmd_atom"
      },
      {
       id: "0_875",
       cmd_type: "cmd_atom"
      }
     ],
    id: "0_709",
    cmd_type: "cmd_noatom"
   }
  ],
  id: "0_727",
  cmd_type: "cmd_noatom"
 },

 languages: 
 [
  "0_132", 
  "0_143", 
  "0_124"
 ],

 external_languages: 
 [
  "0_156", 
  "0_167", 
  "0_174"
 ],

 user
 {
  sc_addr: "1_645",
  is_authenticated: false,
  current_lang: "0_143",
  default_ext_lang: "0_156"
 }
}

api/context/

Адрес Метод Тип запроса
api/context/ api.ContextMenu GET

Описание

Получение контекстного меню, для указанных аргументов.

Параметры

В качестве параметров команды выступает список аргументов.

Пример запроса:

/api/context/?arg_1=1231235&arg_2=38267364

Результат

Возвращает json в котором содержится список атомарных команд (см. /api/init/)

Пример json ответа:

  [
   "0_732",
   "0_702",
   "0_731"
  ]

api/addr/resolve

Адрес Метод Тип запроса
api/addr/resolve api.AddrResolve GET

Описание

Получение sc-адресов элементов по их системным идентификаторам

Параметры

В качестве параметров выступает список системных идентификаторов, для которых необходимо определить sc-адреса.

  • [j]_ - системный идентификатор sc-элемента sc-адрес которого необходимо получить. Число j менятеся от 1 до N, где N - количество sc-элементов, адреса которых запрашиваются

Пример параметров запроса:

0_=project_ostis&
1_=hypermedia_format&
2_=ui_user

Результат

Возвращает json в котором содержится один объект. Этот объект в качестве имен атрибутов содержит системные идентификаторы, которые запрашивались, а в качестве значение атрибутов указаны соотвествующие sc-адреса. Если же запрашиваемого идентификатора нет в атрибутах, то его адрес не удалось установить. Пример возвращаемого json:

{
 "project_ostis": "0_1629", 
 "hypermedia_format": "0_144", 
 "ui_user": "0_721"
}

api/link/format

Адрес Метод Тип запроса
api/link/format api.LinkFormat GET

Описание

Получение формата для указанных sc-ссылок

Параметры

В качестве параметров выступает список sc-адресов ссылок, для которых необходимо определить формат.

  • [j]_ - id (sc-адрес) sc-ссылки формат которой необходимо получить. Число j менятеся от 1 до N, где N - количество sc-ссылок

Пример параметров запроса:

0_=0_1645

Результат

Возвращвет json, в котором содержится один объект. Атрибутами этого объекта выступают адреса sc-ссылок, которые были в запросе, а в качестве их значений выступают sc-адреса узлов обозначающих формат sc-ссылки. Если в ответе нет атрибута с адресом указанным в параметрах, значит формат для указанной sc-ссылки установить не удалось.

Пример json ответа:

{
 "0_1645": "0_145"
}

api/link/content

Адрес Метод Тип запроса
api/link/content api.LinkContent GET

Описание

Получение содержимого указанной sc-ссылки

Параметры

В качестве параметра выступает sc-адрес ссылки.

  • addr - sc-адрес sc-ссылки содержимое которой необходимо получить

Пример параметров запроса:

addr=0_8736

Результат

Возвращает содержимое указанной sc-ссылки, если оно найдено. Иначе ошибка 404. Возвращаемое значение имеет корректный mime type


api/cmd/do

Адрес Метод Тип запроса
api/cmd/do api.CmdDo POST

Описание

Инициирование команды пользовательского интерфейса

Параметры

  • cmd - sc-адрес команды пользовательского интерфейса, которую необходимо инициировать
  • [j]_ - список sc-адресов, которые являются аргументами команды, где j - номер аргумента, от 0 до N (N - количество аргументов)

Пример

cmd=0_426&
0_=0_573&
1_=0_3342

Результат

Возвращает json в котором содержится один объект. Со следующими полями:

  • question - sc-адрес инициированного вопроса, если он был инициирован командой. Иначе это поле отсутствует или пустое.
  • command - sc-адрес инициированной команды, если она была инициирована. Иначе это поле отсутствует или пустое.

api/cmd/text

Адрес Метод Тип запроса
api/cmd/text nl.NaturalLanguageSearch POST

Описание

Инициирование команды с помощью текстового запроса

Параметры

  • query - текстовый запрос

Пример

query=Что такое треугольник?

Результат

Возвращает json в котором содержится один объект. Со следующими полями:

  • question - sc-адрес инициированного вопроса, если он был инициирован командой. Иначе это поле пустое.

Адрес Метод Тип запроса
api/question/answer/translate api.QuestionAnswerTranslate POST

Описание

Получить результат трансляции ответа на вопрос, в указанном формате представления данных

Параметры

  • question - sc-адрес вопроса, ответ на который необходимо получить
  • format - sc-адрес узла обозначающий формат в котором необходимо получить ответ на вопрос

Пример

question=0_426&
format=0_786

Результат

Возвращает json в котором содержится sc-адрес ссылки в которой содержится результат трансляции

{
  link: 0_783
}

api/languages

Адрес Метод Тип запроса
api/languages api.Languages GET

Описание

Получить список всех доступных естествнных языков, которые могут быть использованы для отображени идентификаторов

Параметры

нет

Результат

Возвращает json в котором содержится список sc-адресов запрашиваемых языков

[
 0_432,
 1_637
]

Адрес Метод Тип запроса
api/languages/set api.LanguagesSet POST

Описание

Установка используемого естественного языка

Параметры

  • lang_addr - sc-адрес устанавливаемого языка<

Результат


api/idtf/find

Адрес Метод Тип запроса
api/idtf/find api.IdtfFind GET

Описание

Поиск идентификаторов, которые содержат подстроку

Параметры

  • substr - искомая подстрока

Результат

Возвращает json в котором содержится объект со списком идентификаторов и их адресов. Списки являются значениями полей объекта. Каждое поле объекта - адрес отношения идентификации (основной идентификатор*, системный идентификатор* и т. д.)

[
 "0_5": [
    [0_564, "sc-идентификатор"], 
    [0_654, "основной идентификатор"]
    ],
 "0_1": [
    [0_433, "системный идентификатор"],
    [0_332, "идентификатор"]
    ]
]

api/info/tooltip

Адрес Метод Тип запроса
api/info/tooltip api.InfoTooltip POST

Описание

Запрос всплывающих подсказок для указанных sc-элементов (с учетом текущего языкового режима)

Параметры

  • [j]_ - id (sc-адрес) sc-элемента идентификатор которого необходимо получить. Число j менятеся от 1 до N, где N - количество sc-элементов идентификаторы которых запрашиваются

Пример параметров запроса:

1_=0_5&
2_=0_1

Результат

Возвращает json, в котором содержится объект с подсказками для указанных sc-элементов.

[
 "0_5": "Подсказка 1",
 "0_1": "Подсказка 2"
]

api/user

Адрес Метод Тип запроса
api/user api.User GET

Описание

Запрос информации о пользователе

Параметры

нет

Результат Возвращает Json, в котором содержатся следующие поля:

  • is_authenticated - аутефицировал ли пользователь
  • current_lang - текущий язык, на котором происходит диалог
  • sc_addr - sc адрес пользователя
  • default_ext_lang - расширение по умолчанию Пример Json ответа
{
 "is_authenticated": false,
 "current_lang": "0_201",
 "sc_addr": "0_63362",
 "default_ext_lang": "0_43383"}

/stat/data

Адрес Метод Тип запроса
/stat/data api.GetStatistics GET

Описание

Запрос информации о статистике сервера

Параметры

  • from - начало временного интревала, для которого запрашивается статистика в миллисекундах
  • to - конец временного интревала, для которого запрашивается статистика в миллисекундах

Результат Возвращает Json, в котором содержатся 2 массива со следующим содержанием:

[
 time,
 nodeCount,
 arcCount,
 linksCount,
 liveNodeCount,
 liveArcCount,
 liveLinkCount,
 emptyCount,
 connectionsCount,
 commandsCount,
 commandErrorsCount
]

где,

time - время, ближайшее к запрошеному "from",
nodeCount - количество всех узлов,
arcCount - количество всех дуг,
linksCount - количество всех ссылок,
liveNodeCount - количество существующих узлов,
liveArcCount - количество существующих дуг,
liveLinksCount - количество существующих ссылок,
emptyCount - число пустых элементов,
connectionsCount - число соеденений,
commandsCount - число комманд,
commandErrorsCount - число командных ошибок

Пример Json ответа

[
 [
  1417979842534, 
  5784, 
  42944, 
  4753, 
  77589, 
  0, 
  0, 
  0, 
  2759237125827198976, 
  24872155611466, 
  185211874705408
 ], 
 [
  1417981642636, 
  5791, 
  43123, 
  4757, 
  77399, 
  23, 
  34462, 
  1, 
  13229598783307776, 
  13229804948881524, 
  31525695614287987
 ]
]

Clone this wiki locally