API-контракты


НАЧАЛО >> API ИРБИС 64/128 >> API-контракты📄 Скачать в DOCX


API-контракт описывает опубликованную API-поверхность ИРБИС 128: стабильный ключ, версию, статус публикации, список методов и ресурсов, supported transports, права, идемпотентность, диагностику, Help и TestA-проверки.

1. Системный контракт

Модуль API автоматически публикует контракт api.legacy-jsonrpc.v1. Он описывает существующую JSON-RPC точку:

JSONRPC.php?i128Module=API

Поведение legacy JSON-RPC методов при этом не меняется. Контракт только делает их metadata машиночитаемой для администраторов, внешних потребителей, HealthCheck и TestA.

2. Записи API-контрактов

Дополнительный контракт можно завести как управляемую запись модуля API с типом записи API-контракт.

Основные поля:

Черновики не попадают в обычный публичный экспорт. Они доступны для административных проверок и HealthCheck при включении includeDraft.

3. Границы ответственности

API владеет contract registry, версиями методов и ресурсов, metadata, idempotency contract и API diagnostics.

JSONRPC и REST остаются transport-слоями. Они принимают запросы и маршрутизируют вызовы, но не владеют API-контрактами.

Security владеет правами и masking. API хранит только metadata о требуемых правах и обязан обращаться к Security в runtime-операциях.

Secrets хранит значения секретов. В API-контрактах и экспорте допустимы только ссылки на secrets.

Доменные модули владеют бизнес-операциями и применением изменений. API не должен знать внутреннюю структуру их записей сверх опубликованной metadata.

4. Проверки

Функция API/ValidateContractMetadata проверяет форму одного контракта. Функция API/CheckHealth проверяет системный legacy-контракт, дополнительные записи, metadata методов и отсутствие secret values в export.