Проблема API-ключей, которые никогда не истекают
Ключ, выданный много лет назад, ни разу не заменённый и до сих пор действующий, это не удобство. Это риск, на который никто не смотрел уже много лет.
Некоторые API предлагают песочницу, функционально отделённую от production: другие ключи, иногда другие эндпоинты, порой собственная ценовая структура или собственные, более жёсткие лимиты. Намерение разумное: дать разработчикам безопасное место для тестирования, не затрагивая реальное использование и реальный биллинг. На практике песочница, для которой нужна отдельная регистрация, отдельный ключ или отдельный платный переход на другой тариф, добавляет трения именно в тот момент, когда разработчик пытается решить, стоит ли ваш API вообще каких-либо усилий.
У нас нет отдельной песочницы. Тестирование и production используют одну и ту же бесплатную дневную квоту: 2 500 запросов в день с любого адреса без ключа и ещё 2 500 в день, когда вы добавляете ключ, с учётом по сети. Нет отдельного тестового режима с собственными лимитами, в которых нужно разбираться, и нет платного тарифа, закрывающего серьёзное тестирование за покупкой. Всё, с чем вы работаете во время оценки, это та же самая система, на которой вы развёртываете продукт, с той же самой бесплатной квотой, ещё до того, как вы потратите хоть один евро.
Это важно, потому что песочница, которая ведёт себя хоть немного иначе, чем production, тестирует саму песочницу, а не вашу интеграцию. Если отдельная песочница использует упрощённые или фиктивные данные ответов вместо реального набора данных, об особенностях реальных данных вы узнаёте только после запуска, а это сводит на нет значительную часть того, что тестирование и должно выявлять. Тестирование на реальной системе, с реальными данными и в рамках реальной бесплатной квоты означает, что всё, что вы узнаёте во время оценки, действительно верно для того, что будет работать в production.
Отказ закрывать доступ к песочнице отдельным платным шагом имеет для нас свою цену: какая-то доля этого бесплатного тестового трафика никогда не превратится в платящий аккаунт, это тот же компромисс, что и у любого щедрого бесплатного уровня. Мы считаем, что эта цена оправдана, потому что альтернатива создаёт совершенно неверный стимул для разработчика, который решает, строить ли вообще интеграцию с вашим API. Платный или сильно ограниченный тестовый режим просит человека взять на себя финансовые обязательства ещё до того, как он узнает, подходит ли продукт для его задачи. Бесплатный и полностью функциональный путь тестирования позволяет принять это решение по существу, после того как продукт действительно опробован.
Всё это не значит, что у тестирования вообще нет ограничений. Те же 2 500 запросов в день, которые покрывают небольшое использование в production, покрывают и тестирование, и масштабное нагрузочное тестирование в рамках этой квоты упрётся в тот же потолок, что и небольшая интеграция в production. Это сделано намеренно. Бесплатный уровень достаточно щедр для реальной оценки, но не бесконечен, и использовать его как постоянную тестовую среду для продукта с большим объёмом запросов совсем не то же самое, что с его помощью убедиться, что интеграция работает, прежде чем перейти на платное использование.
Песочница должна честно отвечать на один вопрос: работает ли это так, как я ожидаю, на настоящей системе. Брать плату за этот ответ или отвечать на него с помощью чего-то, кроме настоящей системы, в любом случае лишает её смысла.