API: документация
Основная информация
- Полный путь для подключения:
https://profspo.ru/api/. - Данные передаются методом GET. Допустимы два формата:
- Прямая передача параметров в строке запроса:
https://profspo.ru/api/any?key=value¶m=true - Передача параметров в JSON-объекте, если приложение основано на библиотеках JavaScript: на
https://profspo.ru/api/anyпередаются данные{ "key": "value", "param": true }.
- Прямая передача параметров в строке запроса:
- Любой запрос на сервер должен сопровождаться двумя обязательными параметрами:
organization_idиaccess_token. Эти данные можно получить в соответствующем разделе (доступен только зарегистрированным пользователям с соответствующими полномочиями). Данные можно передавать в следующем формате:{ "organization_id": "24", "access_token": "XXXX.ZZZZ.QJGWT" }или в виде строки запроса в URL. Токен доступа соответствует формату JWT. В случае отсутствия этой пары значений либо в случае их невалидности вместо необходимых данных будет получено сообщение об ошибке, связанной с некорректным токеном. - Есть разделы, требующие авторизации (это каждый раз отмечено в документации особо), а есть те, которые не требуют. При авторизации проверяются также привилегии авторизованного пользователя.
- Ответ сервера на любой запрос включает 4 секции:
{ "success": true или false , "status": 200 или 404, "message": пустое сообщение или сообщение об ошибке, "data": массив с полученными данными }.
Авторизация
- Для авторизации следует передать на URL
https://profspo.ru/api/loginданные в формате:{ "email": "e-mail пользователя", "password": "пароль" }. - Как и прочие параметры, передаваемые на сервер, данные авторизации следует передавать в виде единого JSON-объекта вместе с токеном доступа и
idорганизации, например, так:{ "organization_id": "24", "access_token": "XXXX.ZZZZ.QJGWT", "email": "user@user.ru", "password": "123456" }. Далее в документации это отдельно не оговаривается и не приводится в примерах, но передача токена иidорганизации является обязательной всегда. - При неудачном выполнении авторизации в ответ будут получены данные с детальным сообщением об ошибке.
- При успешном выполнении авторизации в ответ будут получены данные о пользователе и его организации, а также ID пользователя и токен, сгенерированный для данного пользователя (у пользователя может быть несколько токенов в разных приложениях). Пример:
{ "success": true, "status": 200, "message": "Успешная авторизация.", "data": { "user_id": 123, "user_token": "XXXXX" } }. Эти данные внутри приложения можно сохранить в Cookie или в любом другом локальном хранилище для последующего использования. - Полученные данные
user_idиuser_tokenследует использовать для доступа ко всем разделам, требующим авторизации. Например, для доступа к списку организаций на URLhttps://profspo.ru/api/organizationsследует передать данные в формате{ "user_id": 123, "user_token": "XXXXX" }. - Если какие-либо разделы предполагают не только авторизацию, но и передачу дополнительных данных, эти данные следует передавать единым объектом вместе с данными авторизации, например,
{ "id": 1, "user_id": 123, "user_token": "XXXXX" }. - Для разавторизации пользователя следует передать на URL
https://profspo.ru/api/logoutданные в формате:{ "id": 1, "user_id": 123, "user_token": "XXXXX" }. В этом случае токен будет уничтожен, и последующая передача этих данных на разделы, требующие авторизации, будет приводить к ответу с сообщением об ошибке авторизации.
Доступные разделы каталога
-
https://profspo.ru/api/books— список книг.
Вывод изданий ограничивается числом, которое можно изменить.
Возвращаемые данные внутри секцииdata:values— данные об изданиях (ключcoverвключает путь к обложке)total— общее количество изданий (требуется для постраничного вывода и статистики)
limit— число выводимых изданий (максимум 100)offset— смещение для постраничного выводаid— получение данных о конкретном издании по егоids— поиск по названию изданияescape— вывод данных в формате Escaped Unicode (универсальный параметр, можно применять для любого запроса)
-
https://profspo.ru/api/periodicals— список периодических изданий.
Возвращаемые данные и допустимые параметры аналогичны разделуbooks.
Кроме того, для каждого периодического издания ключissuesотвечает за выпуски, рассортированные по годам.
Пользователи
-
https://profspo.ru/api/userlist— список пользователей.
Вывод пользователей ограничивается числом, которое можно изменить.
Возвращаемые данные внутри секцииdata:values— данные о пользователяхtotal— общее количество пользователей (требуется для постраничного вывода и статистики)user— данные об авторизованном пользователе
limit— число выводимых пользователей (максимум 100)offset— смещение для постраничного выводаid— получение данных о конкретном пользователе по егоids— поиск по имени пользователяescape— вывод данных в формате Escaped Unicode (универсальный параметр, можно применять для любого запроса)
-
https://profspo.ru/api/create-user— создание пользователя.
Принимаемые параметры:name— имя пользователя (строка от 3 до 50 символов)email— e-mail (строка)password— пароль (от 6 символов)role— роль пользователя (допустимые значения:2— обучающийся,5— преподаватель)is_blocked(необязательный) — блокировка пользователя (допустимые значения:0— отсутствие блокировки,1— пользователь заблокирован)select_organization(необязательный) — числовой идентификатор связанной организации, для которой ваша организация, выпустившая токен доступа, является координатором; пользователь будет зарегистрирован внутри указанной связанной организации
dataв случае успешного создания пользователя:user_id— числовой идентификатор созданного пользователя
-
https://profspo.ru/api/update-user— обновление данных пользователя. Обновлять данные пользователя могут библиотекари, менеджеры, администраторы и он сам.
Принимаемые параметры:edited_user_id— числовой идентификатор пользователя, данные которого требуется обновить- а также любой из принимаемых параметров раздела
create-userпо отдельности или в любом сочетании (т.е. обновить можно как все данные, так и каждое поле по отдельности, и только некоторые, а в случае с параметромis_blockedможно заблокировать или разблокировать пользователя)
dataне возвращаются.
Важно: для данного запроса требуется авторизация. -
https://profspo.ru/api/related-organizations— список связанных организаций, для которых ваша организация, выпустившая токен доступа, является координатором.
Возвращаемые данные внутри секцииdata:values— данные о связанных организациях (идентификатор и название для каждой)
Бесшовная авторизация
-
https://profspo.ru/api/login-once-token/ID— запрос ссылки для однократной авторизации пользователя с указанием идентификатора, гдеID— числовой идентификатор пользователя.
Допустимые параметры:url— URL страницы (без имени сервера, протокола, ведущих и завершающих слэшей), на которую нужно переадресовать пользователя после успешной авторизации, например,catalog,books/87914,recent,profile/17.
data:link— ссылка видаhttps://profspo.ru/api/login-once/256/XXXXXX, которую необходимо сообщить пользователю сid, переданным в запросе; при переходе по ссылке пользователь авторизуется в системе, а токен для ссылки уничтожается, так что ссылку повторно использовать не получится
-
https://profspo.ru/api/login-or-register-token— запрос ссылки для однократной авторизации или регистрации пользователя. При запросе ссылки пользователь, если он отсутствует в системе, не создаётся до того момента, как ссылка не будет использована.
Необходимые параметры:email— e-mail пользователя, который должен быть авторизован (и при необходимости зарегистрирован) в системеname— полное имя этого пользователяrole— роль пользователя (допустимые значения:2— обучающийся,5— преподаватель)
url— URL страницы (без имени сервера, протокола, ведущих и завершающих слэшей), на которую нужно переадресовать пользователя после успешной авторизации, например,catalog,books/87914,info.
data:link— ссылка видаhttps://profspo.ru/api/login-or-register/AAAAAA/BBBBBB, которую необходимо сообщить пользователю с электронным адресом, переданным в запросе; при переходе по ссылке пользователь, если он не зарегистрирован в системе, регистрируется автоматически, в обоих случаях авторизуется в системе, а токен для ссылки уничтожается, так что ссылку повторно использовать не получится. Если пользователь является вновь зарегистрированным, то он перенаправляется не на главную страницу сайта, а на его профиль, где он может установить себе нужный пароль