Привет, сетевой друг!Продолжаем разбираться с API. В прошлый раз говорили, что это способ общения программ. Сегодня расскажу, как происходит этот "разговор" на практике.🟣Из чего состоит запрос: почти любой API использует четыре вещи: адрес (URL), метод, заголовки и, при необходимости, тело запроса.
Например:
curl -X GET https://router/api/interfaces \
-H "Authorization: Bearer TOKEN"
Здесь GET - метод,
/api/interfaces - нужный ресурс, а токен в заголовке подтверждает, что у нас есть право получить информацию.🟣Что приходит в ответ: чаще всего - JSON. Его легко читать человеку и ещё проще обрабатывать программами.
{
"name": "Gi0/1",
"admin_state": "up",
"oper_state": "up",
"speed": "1G"
}После этого Python, Ansible или даже Bash могут сразу использовать эти данные без парсинга CLI.
🟣Коды ответа тоже важны:
200 — всё успешно
201 — объект создан
400 — ошибка в запросе
401 — нет авторизации
403 — доступ запрещён
404 — объект не найден
500 — проблема на стороне сервера
По одному статус-коду часто уже можно понять, где искать проблему.
🟣Полезные команды:
# Красиво вывести JSON
curl https://device/api/interfaces | jq
# Посмотреть только HTTP-заголовки
curl -I https://device/api
# Посмотреть полный обмен
curl -v https://device/api
Последняя команда особенно полезна при отладке - видно, какие заголовки отправились, какой код вернул сервер и не возникло ли проблем с TLS.
Серверная Админа | Zeroday | #API
