Два соглашения в одном узле. Подача по HTTP ведёт себя привычно: ошибка в запросе, ключе, пути, методе или внутри узла — каждой свой код ответа, 400, 403, 404, 405 или 500, а подробности — в теле errors.
API настройки — иначе: всё, кроме отказа в доступе, возвращает 200, а исход пишет в поле status — success или fail — и текст в message. Отклонённое изменение не применяется.
Текст отказа бывает сбивающим: удаление используемого списка может вернуть «no such address list» — удаление отклонено, а список остался на месте. А при большой операции блокировка хранилища может уронить соседнюю операцию или обычное перечитывание — их повторяют.
Как узнать об ошибке:
| API | Сигнал ошибки |
|---|---|
| подача по HTTP | код ответа и тело errors |
| API настройки | status fail и message при коде 200 |
| отказ в доступе к API настройки | код ответа, отличный от 200 |
# отказ API настройки: код 200, исход — в теле HTTP/1.1 200 Ok {"message": "Error reading configuration: Config API error: Address 'a@z.com' does not exist in address list 'list1'.", "status": "fail"}
2 связи
curl -s -w '\n%{http_code}\n' 'http://127.0.0.1:8080/config/address-lists/nosuchlist'
3 статьи
◇Принять, направить, доставитьПуть письма внутри узла: принять, решить куда, доставить — и между этими тремя шагами живут все настройки.◇Четыре типа значений, на которых написан весь конфигЛогическое, образец домена, регулярное выражение и промежуток времени — определены один раз в § 3.2 и дальше используются всеми директивами.◇Перезагрузка настроек против перезапуска службыКонфигурация читается при старте, дальше правки подхватываются командой перезагрузки — кроме тех директив, которые руководство помечает как требующие перезапуска.