Расширенные возможности сервиса

Хотите отобразить интерактивное расписание на сайте или по-своему анализировать информацию?
Воспользуйтесь открытым API системы Студенты.ОНЛАЙН.

Знакомство с API

API Студенты.онлайн — это интерфейс, который позволяет получать и изменять информацию Вашей базы данных в "студентах", с помощью http запросов к серверу системы.

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

Все методы разделены на секции(модули). Например, для авторизации и работы с токенами Вам нужны методы секции Auth, для работы со списком учеников - Students, и так далее. Полный список секций доступен на этой странице, в панели навигации, а на странице каждой секции приведён список доступных в ней методов.

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

Структура запроса

В тело POST http запроса нужно поместить json-массив json-объектов, артибутами которых указать идентификаторы методов и передаваемые параметры.

Идентификатор метода имеет вид "названиеCекции/названиеМетода" (регистр символов не имеет значения). Например, для вызова метода авторизации Login, который находится в секции Auth, идентификатором будет строка:

"auth/login"

Чтобы вызвать метод авторизации, нужно сформировать пакет следующим образом:

Пример тела запроса
[
    {
        "method" : "auth/login",
        "data" : {
            "phone": "***",
            "password" : "***"
        }
    }
]

Структура ответа

В ответе сервер вернёт, аналогично запросу, json-массов json-объектов, в котором, по каждому запрошенному методу будут перечислены:

Результат запроса:
method
Идентификатор запрашиваемого метода
Строка, обязательный аттрибут
data
Переданные параметры, при наличии
resultStatus
Информация о состоянии выполнении метода. Возможные варианты:
  1. Успешное выполнение
  2. Не найден модуль
  3. Ошибка валидации (обнаружена ошибка в переданных параметрах)
  4. Не найден метод
  5. Не верный token (для методов, требующих авторизаци)
  6. У пользователя нет прав на выполнение метода
  7. Вызов временно запрещён системой
  8. Иная ошибка
Целочисленное, обязательный аттрибут
resultStatusText
Текстовая отладочная информация об ошибке (например: "Unknown module")
result
Результат выполнения метода. Может содаржить как json-массив обектов, так и json-объект, в зависимости от метода.

Пример запроса и ответа на вызов метода getParamsCount из секции lessonsMarksList:

Пример запроса
[
    {
        "method" : "lessonsMarksList/GetParamsCount"
    }
]
Пример ответа
[
    {
        "method": "lessonsMarksList/GetParamsCount",
        "resultStatus": 1,
        "result": {
            "count": "4"
        }
    }
]

Выполнение методов

Все http запросы выполняются методом POST, по адресу точки входа API. В теле запроса нужно поместить json-массива json-объектов, описывающих путь к методу и передаваемые параметры.

Точка входа API:

https://api.stonline.club

Существуют методы, не требующие авторизации. Их можно вызывать напрямую из точки входа. Для методов, требующих авторизации, нужно получить token авторизации, с помощью метода Login, секции Auth, а затем передать его GET параметром token, при обращении к точке входа API, например:

Точка входа API + token:

https://api.stonline.club/?token=d765387407957642b2314c026789fac99b45cde5f84392e674

В случае, если GET параметр для token использовать не очень удобно или просто не хочется, параметр token можно разместить прямо в теле первого метода запроса, например:

Размещение token в теле метода
[
    {
        "token" : "d765387407957642b2314c026789fac99b45cde5f84392e674",
        "method" : "lessonsMarksList/GetParamsCount"
    }
]