rfapi - RedForester API module for Python
Features
- Python 3.7
- Async (using aiohttp)
- Lightweight
- Fast
Installing
- Install with PIP
pip install git+https://github.com/ichega/rfapi.git
Roadmap
Реализовать следующий набор классов:
- Session - создание сессии для работы с RedForester
- Request - получение данных из RedForester
- Action - совершение действий в RedForester
- Sequense - совершение сразу множества действий в RedForester
- User - работа с данными о пользователе
- Map - работа с данными о карте
- Node - работа с данными об узле
- Event - информации о событии на карте
- Listener - отслеживание событий на карте (создание, удаление, модификация узлов и веток)
User guide
1. Создать сессию
import redforester
session = rfapi.Session(username="username", password="password")
# Можно вместо пароля передать его md5 хеш
# session = rfapi.Session(username="username", password="5F4DCC3B5AA765D61D8327DEB882CF99", use_md5=True)
Замечание: Можно также подключится к тестовому серверу
import rfapi
from rfapi.config import DEVELOPMENT_CONFIG
session = rfapi.Session(username="", password="", config=DEVELOPMENT_CONFIG)
2. Получение информации из RedForester
Для этого необходимо использовать класс Request:
Пример, получение данных о пользователе:
2.1. Синхронный вариант - метод send
import redforester
session = redforester.Session(username="username", password="password")
request = redforester.Request(session=session, method="GET", url="/api/user")
response = request.send()
print(response)
2.2. Асинхронный вариант - метод async_send
import redforester
import asyncio
session = redforester.Session(username="username", password="password")
request = redforester.Request(session=session, method="GET", url="/api/user")
loop = asyncio.get_event_loop()
response = loop.run_until_complete(request.async_send())
print(response)
3. Совершение действий в RedForester
3.1. Action
Для этого используется класс Action. Аналогично Request, он имеет синхронный и асинхронный вариант.
Пример, пусть нужно изменить аватар пользователя:
Синхронный вариант:
import redforester
session = redforester.Session(username="username", password="password")
data = {
"avatar": "https://img.icons8.com/color/48/000000/administrator-male.png",
}
action = redforester.Action(session, method="PATCH", url="/api/user", data=data)
response = action.send()
print(response)
3.2. Sequence
В документации RedForester рекомендуется использовать batch запросы для совершения нескольких последовательных действий. Для этих целей был разработан класс Sequence, который позволяет легко организовать несколько Action в batch-запрос.
Конструктор Sequence принимает два аргумента:
- Сессию
- Кортеж из
Action
Пример, пусть нужно изменить аватар пользователя и создать новую карту:
import redforester
session = redforester.Session(username="username", password="password")
avatar_info = {
"avatar": "https://img.icons8.com/color/48/000000/administrator-male.png",
}
map_info = {
"name": redforester
}
action1 = redforester.Action(session, "PATCH", "/api/user", avatar_info)
action2 = redforester.Action(session, "POST", "/api/maps", map_info)
sequence = redforester.Sequence(session, (action1, action2))
response = sequence.send()
print(response)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file redforester-0.1.8.tar.gz.
File metadata
- Download URL: redforester-0.1.8.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db5ec39ea54af8d33e1a4a0ac3d8835a8eaa935fbd4f36ec2004a36a65ee34e9
|
|
| MD5 |
9b412d3ae2f69a9841ca2517ef31f57a
|
|
| BLAKE2b-256 |
c90fb7e3a06415d4a5c80d5374187d1174d138af3b4dfe34d6ea7ea5085f8778
|