Asynchrone Bibliothek für die Arbeit mit der Mikrotik-API

Sehr willkommen.

Vor kurzem musste ich über die API mit Mikrotik arbeiten. Es scheint nichts Besonderes zu sein, es gibt eine offizielle Bibliothek , es gibt auch einen Wrapper auf dem Github , aber hier ist das Problem - ich musste asynchron durch asyncio arbeiten und async / await-Brötchen verwenden. Und eine solche Bibliothek habe ich nicht gefunden.

Ich musste mich selbst schreiben.

Der Artikel wird nicht sehr lang sein, da es nichts Besonderes zu schreiben gibt. Und ein Link zum Repository würde völlig ausreichen.

Paketinstallation:

pip install aio_api_ros 

Hier ist ein Anwendungsbeispiel:

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

Es ist auch möglich, vor Mikrotik einen einfachen Pool von Verbindungen zu erstellen, aber der Pool wurde nicht unter Kampfbedingungen getestet.

Das gleiche Beispiel, aber mit einem Pool von Verbindungen
 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() 


Um die Antworten von Mikrotiterplatten zu analysieren, habe ich die Best Practices aus diesem Repository verwendet

Ich hoffe, jemand wird dies nützlich finden.

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


All Articles