Сорок точек за спиной у консоли провереноважноПишет Хаб
Всё, чего не умеет REST API, консоль делает через собственный интерфейс HTTP — которым может пользоваться и наш код.
Подробно
Консоль — это статическая страница, которая говорит с MTA примерно через сорок мелких точек, по одной на сущность. Это не API /v1: они живут в корне (/capacity, а не /v1/capacity), принимают обычную кодировку формы, а не JSON, и авторизуют по сеансовой cookie, полученной из POST /login с доступами www-auth. Важно это потому, что пробел в REST — нет профилей лимитов, правил, ключей DKIM, правил переписывания, реакций на ответ — ровно то множество, которое API консоли покрывает. На стенде мы создали через него профили лимитов, правила лимитов, подавления и пулы, и каждая запись легла в базу и вступила в силу. Значит, у модуля управления к узлу три дороги, а не две: описанный REST для шести сущностей, которые он покрывает, собственный API консоли для всего остального и прямая запись в управляющую базу с последующим перечитыванием. Средняя дорога сохраняет собственную проверку MTA и его же правило «stolen»; последняя обходит и то и другое. API консоли к тому же отвечает на вопросы о принадлежности так, как база не отвечает: создание уже существующего правила лимитов возвращает {"result": "stolen", "from": 1}, а не переносит строку молча.