Привет! Здорово, что для новой бета-версии RouterOS v7 появился REST API. Мы пытаемся внедрить автоматизацию через REST API для RouterOS v7, но столкнулись с тем, что требуется немало усилий, чтобы разобраться в использовании API и сопоставить его с интерфейсом команд. Интересно, можно ли получить спецификацию OpenAPI в формате json, чтобы ускорить разработку для пользователей. Chang
Запрос функции: OpenAPI для REST API
Запрос функции: OpenAPI для REST API, RouterOS
27.05.2021 08:10:00
|
|
|
|
28.02.2022 17:34:00
Ты когда-нибудь находил OpenAPI или Swagger-документацию для REST API? Кто-нибудь уже сделал её?
|
|
|
|
31.10.2022 13:44:00
+1. Тоже ищу это. Есть какие новости?
|
|
|
|
01.11.2022 07:32:00
Возможно, это будет полезно? Вы можете получить список, вызвав:
|
|
|
|
08.11.2022 15:59:00
Ещё одним полезным инструментом может быть /console/inspect. Вы можете запросить завершение, список дочерних команд меню и параметры.
|
|
|
|
08.11.2022 18:16:00
Интересно, есть ли где-нибудь документация по inspect request=child и другим связанным функциям?
|
|
|
|
08.11.2022 19:03:00
Это пасхалка
|
|
|
|
13.11.2022 22:34:00
Сегодня снова пересмотрел это, думал, будет легко получить «объяснение». Хотя «request=child» работает с issue, некоторые «request=syntax» (например, «path=ip,address,add,interface», см. ниже) вызывают полный сбой терминала («Console has crashed; please log in again.») — при этом большинство запросов с request=syntax работают нормально.
[user@router] > /console/inspect request=syntax path=ip,address,add Колонки: TYPE, SYMBOL, SYMBOL-TYPE, NESTED, NONORM, TEXT TYPE SYMBOL SYMBOL-TYPE NESTED NONORM TEXT syntax collection 0 yes syntax address explanation 1 no Локальный IP-адрес syntax broadcast explanation 1 no Широковещательный адрес syntax comment explanation 1 no Краткое описание элемента syntax copy-from explanation 1 no Номер элемента syntax disabled explanation 1 no Определяет, игнорируется элемент или используется syntax interface explanation 1 no Имя интерфейса syntax netmask explanation 1 no Маска сети syntax network explanation 1 no Префикс сети [user@router] > /console/inspect request=syntax path=ip,address,add,address Колонки: TYPE, SYMBOL, SYMBOL-TYPE, NESTED, NONORM, TEXT TYPE SYMBOL SYMBOL-TYPE NESTED NONORM TEXT syntax Address definition 0 no A.B.C.D (IP-адрес) [user@router] > /console/inspect request=syntax path=ip,address,add,interface Консоль упала; пожалуйста, войдите снова. Даже обернув это в «:do {} on-error={}» сбой не ловится, так что этот способ не сработал. :do { /console/inspect request=syntax path=ip,address,add,interface } on-error={:put "got error"} Хотя для схемы это не было бы критично, там всё же есть описание, которое можно установить, и есть какой-то узел типа «collection», который, вероятно, указывает на возможный массив (а не просто строку) в качестве параметра JSON. К слову, тот же /console/inspect можно вызвать и через REST API. Но при тех же параметрах в REST («{ “request”: “syntax”, “path”: “ip,address,add,interface” }») терминал не падает, а просто виснет без данных (пустой JSON-массив). На самом деле, вот RAML для /console/inspect: #%RAML 1.0 title: ROS.RAML sample version: 7.6 protocols: [HTTPS] mediaType: [application/json] securitySchemes: basic: description: | Mikrotik REST API поддерживает только Basic Authentication, защищённую HTTPS type: Basic Authentication securedBy: [basic] baseUri: https://{host}:{port}/rest baseUriParameters: host: description: IP-адрес или имя хоста устройства RouterOS default: "192.168.88.1" port: description: HTTPS-порт RouterOS default: "443" documentation: - title: RouterOS RAML Schema content: | Схема генерируется с помощью `/console/inspect` на устройствах RouterOS и интерпретируется согласно правилам из [Mikrotik REST documentation]( - title: Только демо content: Просто пробуем несколько команд /console: /inspect: post: description: Инспекция AST RouterOS body: application/json: type: object properties: .proplist?: type: string description: Список свойств для возврата (смотрите документы RouterOS) .query?: type: string description: Список свойств для возврата (смотрите документы RouterOS) path?: type: string description: Строка путей RouterOS, разделённых запятыми example: input?: type: string request: type: string enum: [self|child|completion|highlight|syntax|error] example: path: "ip,address,add,interface" request: syntax responses: 200: body: application/json: type: array |
|
|
|
11.09.2023 03:00:00
Я как-то забыл об этом. Но у меня есть реализация на JavaScript, которая использует /system/console через REST и генерирует схему RAML 1.0. Смотрите
|
|
|
|
11.09.2023 17:49:00
Вот схема OpenAPI, которую я сгенерировал на основе приведённой выше RAML-схемы. Схема OpenAPI 3.0 / swagger
|
|
|
|
14.12.2023 20:55:00
Вау! Спасибо, отличная работа!
|
|
|
|
27.05.2024 12:21:00
Недавно я автоматизировал создание файлов схем на GitHub, включая OpenAPI 2.0 (OAS2). Так что более новые (и старые) версии схем RAML и OpenAPI доступны по адресу:
![]() |
|
|
|
23.09.2025 20:13:02
Embark into the massive sandbox of EVE Online. Test your limits today. Fight alongside thousands of explorers worldwide.
|
||||
|
|
|||
Читают тему