مكتبة غير متزامنة للعمل مع واجهة برمجة تطبيقات Mikrotik

مرحبا بكم بقوة

في الآونة الأخيرة ، كنت بحاجة إلى العمل مع Mikrotik من خلال API لها. يبدو أنه لا يوجد شيء رائع ، فهناك مكتبة رسمية ، وهناك أيضًا غلاف على جيثب ، لكن المشكلة هي - كان علي أن أعمل بشكل غير متزامن من خلال المزامنة وأستخدم كعكات غير متزامنة / في انتظار. ولم أجد مثل هذه المكتبة.

كان علي أن أكتب نفسي.

لن تكون المقالة طويلة جدًا ، لأنه لا يوجد شيء خاص للكتابة عنها. ورابط إلى مستودع سيكون كافيا.

حزمة التثبيت:

pip install aio_api_ros 

فيما يلي مثال للاستخدام:

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

من الممكن أيضًا إنشاء مجموعة بسيطة من الاتصالات قبل Mikrotik ، ولكن لم يتم اختبارها في ظروف القتال.

نفس المثال ولكن مع مجموعة من الاتصالات
 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() 


لتحليل الردود من microt ، استخدمت أفضل الممارسات من هذا المستودع

آمل أن يجد شخص ما هذا مفيدًا.

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


All Articles