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 hashes)

Uploaded Source

Supported by

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