]> git.stg.codes - stg.git/blob - doc/xmlrpc/API.xml
Use std::lock_guard instead of STG_LOCKER.
[stg.git] / doc / xmlrpc / API.xml
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">
4     <bookinfo>
5         <title>Описание XML-RPC API биллинговой системы Stargazer</title>
6         <author>i
7             <firstname>Maxim</firstname>
8             <surname>Mamontov</surname>
9             <email>faust@stg.dp.ua</email>
10         </author>
11         <date>22.05.2009</date>
12     </bookinfo>
13     <preface>
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>
22         </itemizedlist>
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 &#151; уникальная строка, длиной в 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>
27     </preface>
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"/>
33 </book>