Что должен гарантировать контракт
Прикладной интерфейс отличается от страницы тем, что его ответ читает программа, которая не увидит примечания рядом. Поэтому каждое поле результата должно нести собственный источник, дату сведений и состояние покрытия — иначе потребитель неизбежно истолкует отсутствие данных как отсутствие риска.
Второе требование — версионирование. Изменение состава полей или смысла значения не может происходить молча: у потребителя должна быть возможность остаться на прежней версии контракта до переключения.
- У каждого поля — источник, дата и покрытие.
- Явное состояние: данные есть, данных нет, источник недоступен.
- Версия контракта и версия методики в самом ответе.
- Лимиты обращений и условия использования по каждому источнику.
Условия использования проходят через интерфейс
Право на публичный показ сведений и право на их передачу через программный интерфейс — не одно и то же. Источник может разрешать отображение на странице и не разрешать выдачу в машиночитаемом виде. Поэтому состав полей интерфейса определяется не техническими возможностями, а условиями по каждому источнику отдельно.
Что нужно, чтобы модуль заработал
Нужны закреплённый контракт, проверенные лимиты и подтверждённые права на передачу по каждому источнику. Проект открытых контрактов подготовлен, но до подключения полных данных он остаётся проектом.
Состав направления «API»
Перечень подготовлен, но ни один из пунктов сейчас не выполняется автоматически. Он показывает, какие вопросы направление закроет после подключения источников.
- Поиск и карточки объектов
- Задания проверки и статусы
- Результаты и доказательства
- Источники и полнота покрытия
- Ключи, лимиты и аудит
- Webhooks и версии контрактов
Следующий шаг разработки: Закрепить production-контракт, авторизацию клиентов и права на передачу данных.
Частые вопросы
Есть ли публичный API сейчас?
Публичного прикладного интерфейса для внешних потребителей нет. Внутренние маршруты обслуживают сайт и не являются стабильным контрактом.
Почему нельзя просто отдать те же данные, что на странице?
Право на показ сведений на странице и право на их передачу в машиночитаемом виде — разные права. Состав полей интерфейса определяется условиями по каждому источнику, а не техническими возможностями.
Что будет в ответе, если данных нет?
Явное состояние источника: данных нет, источник недоступен или не подключён. Отсутствие данных никогда не будет отдаваться как отсутствие ограничения.