Skip to main content

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)

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.

Release history Release notifications | RSS feed

This release

0.1.8 This release

1 file

0.1.7

2 files

0.1.6

1 file

Supported by

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