Biblioteca assíncrona para trabalhar com a API Mikrotik

Fortemente bem-vindo.

Recentemente, eu precisei trabalhar com o Mikrotik através de sua API. Parece que não há nada de notável, existe uma biblioteca oficial , há também um invólucro no github , mas aqui está o problema - tive que trabalhar de forma assíncrona através do assíncio e usando pães async / waitit. E eu não encontrei essa biblioteca.

Eu tive que me escrever.

O artigo não será muito longo, porque não há nada de especial para escrever. E um link para o repositório seria suficiente.

Instalação do pacote:

pip install aio_api_ros 

Aqui está um exemplo de uso:

 import asyncio from aio_api_ros import create_rosapi_connection async def main(): #   mk = await create_rosapi_connection( mk_ip='127.0.0.1', mk_port=8728, mk_user='myuser', mk_psw='mypassword' ) #   mk.talk_word('/ip/hotspot/active/print') #     res = await mk.read() print(res) mk.close() if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close() 

Também é possível criar um pool simples de conexões antes do Mikrotik, mas o pool não foi testado em condições de combate.

O mesmo exemplo, mas com um conjunto de conexões
 import asyncio from aio_api_ros import create_rosapi_simple_pool async def main(): mk = await create_rosapi_simple_pool( mk_ip='127.0.0.1', mk_port=8728, mk_user='myuser', mk_psw='mypassword', max_size=4 ) await mk.talk_word('/ip/hotspot/active/print') res = await mk.read() print(res) mk.close() if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close() 


Para analisar as respostas do microt, usei as práticas recomendadas deste repositório

Espero que alguém ache isso útil.

Source: https://habr.com/ru/post/pt444098/


All Articles