Skip to main content

Async RedForester API module for Python 3.7+

Project description

rfapi - RedForester API module for Python

Features

  • Python 3.7
  • Async (using aiohttp)
  • Lightweight
  • Fast

Installing

  1. 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)

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

redforester-0.1.8.tar.gz (7.6 kB view details)

Uploaded Source

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

Hashes for redforester-0.1.8.tar.gz
Algorithm Hash digest
SHA256 db5ec39ea54af8d33e1a4a0ac3d8835a8eaa935fbd4f36ec2004a36a65ee34e9
MD5 9b412d3ae2f69a9841ca2517ef31f57a
BLAKE2b-256 c90fb7e3a06415d4a5c80d5374187d1174d138af3b4dfe34d6ea7ea5085f8778

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page