Exon API wrapper
Project description
easy-exon
easy-exon — это лёгкая Python-обёртка к REST API платформы Exon (СУИД).
Она упрощает аутентификацию через Keycloak и предоставляет «плоский» Python-клиент
с ресурсами (api.objects, api.users, api.itd_acts и т. д.) вместо ручного
формирования HTTP-запросов.
Важно: библиотека пока ориентирована на чтение данных.
Из методовPUT/POST/PATCHреализовано только добавление/редактирование пользователей — и то при наличии соответствующих прав у вашего аккаунта.
Для остальных сущностей доступна только выборка (GETиPOSTдля передачи фильтра).
Возможности
- 🔒 Авторизация по OIDC-токену (Keycloak, realm
SpringBoot). - 🚀 Удобный высокоуровневый клиент
MyApiClientс «живыми» ресурсами
(создаются один раз при инициализации). - 📝 Встроенные модели / валидация на базе Pydantic v2.
- 🐍 Минимум зависимостей (только
requestsиpydantic).
Установка
pip install git+https://github.com/fallec/easy-exon.git
# или с PyPI:
pip install easy-exon
Быстрый старт
from easy_exon import MyApiClient, get_token
# 1. Получаем JWT-токен Keycloak
token = get_token("login@example.com", "S3cret!")
# 2. Создаём клиент (ресурсы становятся атрибутами объекта)
api = MyApiClient(token=token)
# 3. Делаем запросы
objects_page = api.objects.list() # Список объектов
Где брать названия полей и эндпоинтов?
Exon не публикует открытой спецификации.
Чтобы понять, какие поля доступны в том или ином методе, откройте
вкладку DevTools → Network вашего браузера при работе с веб-версией Exon:
там видны реальные HTTP-запросы, их URL, query-параметры и JSON-payload.
Эти сведения легко перенести в вызовы easy-exon.
Архитектура
MyApiClient— центральный класс-обёртка.
При создании инициализирует все ресурсы:
users,organizations,objects,itd_*,isr_*,act_*,sk_*,
otitb_*,pir_*и др.BaseClient— низкоуровневый слой (повторно используетrequests.Session).resources/*— отдельный модуль на каждый «микросервис» Exon.exceptions.py— типы ошибок (например,TokenError).
Обратная связь
По всем вопросам обращаться в отдел аналитики АНО РСИ.
Грехов Андрей 90788
Измалков Кирилл 90938
Лицензия
Проект распространяется под лицензией MIT.
См. файл LICENSE для подробностей.
easy-exon — неофициальный инструмент. Авторы не связаны с разработчиками Exon Project и не могут гарантировать стабильность внутренних API.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easy_exon-1.0.1.tar.gz.
File metadata
- Download URL: easy_exon-1.0.1.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f5ffdb62d049f6264a6918369973dd8a9d57e111e23d14244d712f051ffe20
|
|
| MD5 |
dc6159e3b3643468e7886725acfcf27e
|
|
| BLAKE2b-256 |
2401a1f8fd15f9992dd4cb8fcf84d75a67b771dcaec0b81435aca9734d698935
|
File details
Details for the file easy_exon-1.0.1-py2.py3-none-any.whl.
File metadata
- Download URL: easy_exon-1.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 42.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6fe6ffe37684a23ac5b40b4aff9861e1360f9f1be3b383281d9450d65795319
|
|
| MD5 |
8a87c47d42438e71de77c23d964daf5a
|
|
| BLAKE2b-256 |
66d41cb504b1d01ce184f8acfa4f12d278c8715e815bee462ab479d0337992ec
|