Итоги и практика
Главное
- — это меню запросов, которое одна программа предлагает другой, и это контракт: спросите условленным способом — получите ответ условленной формы. Большинство багов API — это нарушение контракта одной из сторон.
- — то, в каком виде приходит ответ: ключи и значения, собранные из объектов
{ }и массивов[ ], которые вкладываются друг в друга. Типы данных: string, number, boolean, null, array, object. - Ловушка «строка против числа» (
42против"42") и «отсутствует противnull» — самые частые баги формы. Теперь вы умеете читать JSON — проверяйте тип, когда что-то ведёт себя странно. - API-ключ — это пароль. Никогда не отправляйте его в браузер, никогда не коммитьте в , храните в переменных окружения. Утёкший ключ нужно немедленно сменить (rotate).
- Следите за лимитами запросов (
429) и тарификацией по факту — написанные ИИ циклы, что зовут платный API без паузы, и есть путь к четырёхзначному счёту. Сначала прочтите цены и настройте оповещение о бюджете.
Попробуйте сами
Найдите в браузере бесплатный API без ключа — например, откройте https://api.github.com/users/octocat прямо в новой вкладке. Вы увидите сырой ответ в JSON. Читайте его как анкету: выделите объекты { }, найдите массив, если он есть, и назовите тип трёх разных значений (какие строки? числа? булевы? есть ли null?). Вы только что проделали ровно ту проверку, которую эта глава просит выполнять для каждого ответа API, что подключает ИИ.
Промпт главы
I'm calling an API and I want to check the data shape myself, as a beginner.
Here are the real docs (example request + example response):
<paste the example request and JSON response from the API's docs>
- Before writing parsing code, show me the raw JSON the call returns and
point out the keys, their types, and anything that might be null or missing.
- Confirm the keys my code reads actually exist in that response.
- Make sure the API key is read from an environment variable on the server,
never hardcoded or sent to the browser.
- Tell me what happens if the call fails, times out, or hits a rate limit.