1 <?xml version="1.0" encoding="UTF-8"?>
2 <book xmlns="http://docbook.org/ns/docbook"
3 xmlns:xi="http://www.w3.org/2001/XInclude">
5 <title>Описание XML-RPC API биллинговой системы Stargazer</title>
7 <firstname>Maxim</firstname>
8 <surname>Mamontov</surname>
9 <email>faust@stg.dp.ua</email>
11 <date>22.05.2009</date>
14 <title>Предисловие</title>
15 <para>XML-RPC API предоставляется посредством плагина mod_conf_rpc.so. Для его использования необходимо установить библиотеку xmlrpc-c версии не ниже 1.16.0.</para>
16 <para>Все API-вызовы сгруппированы по 4 категориям:</para>
17 <itemizedlist mark='opencircle'>
18 <listitem><para>Системные (авторизация, информация о системе и т.д.)</para></listitem>
19 <listitem><para>Управление пользователями</para></listitem>
20 <listitem><para>Управление тарифами</para></listitem>
21 <listitem><para>Управление админами</para></listitem>
23 <para>Имя каждого вызова начинается с префикса "stargazer." (точка в конце обязательна). Обычно состоит из глагола, обозначающего дейстиве, и существительного, обозначающего объект. Например: <link linkend="stargazer.get_user"><function>stargazer.get_user</function></link> или <link linkend="stargazer.add_tariff"><function>stargazer.add_tariff</function></link>.</para>
24 <para>Работа с системой имеет сессионный характер. При авторизации администратора в системе для него открывается сессия, идентифицируемая по сессионному cookie. Сессионный cookie — уникальная строка, длиной в 64 символа, передаваемая во все API-вызовы в качетсве одного из параметров. Время жизни сессионного cookie ограничено вызовом <link linkend="stargazer.logout"><function>stargazer.logout</function></link> и тайм-аутом. Тайм-аут отсчитывается с момента последнего вызова API и конфигурируется на стороне сервера. Количество одновременно открытых сессий ограничено только ресурсами системы.</para>
25 <para>Вызовы <link linkend="stargazer.login"><function>stargazer.login</function></link> и <link linkend="stargazer.info"><function>stargazer.info</function></link> не требуют сессионного cookie.</para>
26 <para>Вызовы не предусматривающие возвращение какой-либо информации (например, <link linkend="stargazer.add_tariff"><function>stargazer.add_tariff</function></link> или <link linkend="stargazer.chg_admin"><function>stargazer.chg_admin</function></link>) возвращают результат типа boolean. true в случае успеха и false в случае неудачи. Если вызов возвращает какую-нибуть информацию (например, <link linkend="stargazer.get_user"><function>stargazer.get_user</function></link>) то в нее добавляется поле result типа boolean. Оно принимает значение true в случае успешного вызова и false в случае неудачи. Это поле является обязательным для всех возвращаемых структур.</para>
28 <xi:include href="API-system.xml"/>
29 <xi:include href="API-tariffs.xml"/>
30 <xi:include href="API-user.xml"/>
31 <xi:include href="API-messages.xml"/>
32 <xi:include href="API-admins.xml"/>