НАЧАЛО >> API ИРБИС 64/128 >> API-контракты📄 Скачать в DOCX
API-контракт описывает опубликованную API-поверхность ИРБИС 128: стабильный ключ, версию, статус публикации, список методов и ресурсов, supported transports, права, идемпотентность, диагностику, Help и TestA-проверки.
Модуль API автоматически публикует контракт api.legacy-jsonrpc.v1. Он описывает существующую JSON-RPC точку:
JSONRPC.php?i128Module=API
Поведение legacy JSON-RPC методов при этом не меняется. Контракт только делает их metadata машиночитаемой для администраторов, внешних потребителей, HealthCheck и TestA.
Дополнительный контракт можно завести как управляемую запись модуля API с типом записи API-контракт.
Основные поля:
Ключ - стабильный технический ключ контракта.Название - человекочитаемое имя для администратора.Версия - версия контракта.Статус публикации - Черновик, Опубликован, Устаревает или Выключен.Транспорты - ссылки на transport-layer, например jsonrpc или rest.Методы - методы, входящие в контракт.Ресурсы - логические ресурсы контракта.Черновики не попадают в обычный публичный экспорт. Они доступны для административных проверок и HealthCheck при включении includeDraft.
API владеет contract registry, версиями методов и ресурсов, metadata, idempotency contract и API diagnostics.
JSONRPC и REST остаются transport-слоями. Они принимают запросы и маршрутизируют вызовы, но не владеют API-контрактами.
Security владеет правами и masking. API хранит только metadata о требуемых правах и обязан обращаться к Security в runtime-операциях.
Secrets хранит значения секретов. В API-контрактах и экспорте допустимы только ссылки на secrets.
Доменные модули владеют бизнес-операциями и применением изменений. API не должен знать внутреннюю структуру их записей сверх опубликованной metadata.
Функция API/ValidateContractMetadata проверяет форму одного контракта. Функция API/CheckHealth проверяет системный legacy-контракт, дополнительные записи, metadata методов и отсутствие secret values в export.