Je vous souhaite la bienvenue.
Récemment, j'ai dû travailler avec Mikrotik via son API. Cela ne semble rien de remarquable, il y a une
bibliothèque officielle , il y a aussi un
wrapper sur le
github , mais le problème est - j'ai dû travailler de manière asynchrone via asyncio et en utilisant des chignons async / attente. Et je n'ai pas trouvé une telle bibliothèque.
J'ai dû m'écrire.
L'article ne sera pas très long, car il n'y a rien de spécial à écrire. Et un
lien vers le référentiel serait tout à fait suffisant.
Installation du package:
pip install aio_api_ros
Voici un exemple d'utilisation:
import asyncio from aio_api_ros import create_rosapi_connection async def main():
Il est également possible de créer un simple pool de connexions avant Mikrotik, mais le pool n'a pas été testé dans des conditions de combat.
Le même exemple mais avec un pool de connexions 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()
Pour analyser les réponses de microt, j'ai utilisé les meilleures pratiques de ce
référentielJ'espère que quelqu'un trouvera cela utile.