on1kel/oas-profile-31
最新稳定版本:v1.0.2
Composer 安装命令:
composer require on1kel/oas-profile-31
包简介
OpenAPI 3.1 profile for on1kel/oas-core (features, allowed/required keys, extra rules).
README 文档
README
Профиль OpenAPI 3.1 для on1kel/oas-core
Добавляет поддержку правил и ограничений OpenAPI 3.1, включая детекцию версии, расширенную валидацию схем и CLI-утилиту oas-validate.
Установка
composer require on1kel/oas-profile-31
Требования: PHP ≥ 8.2, пакет on1kel/oas-core.
Использование
CLI
Проверить спецификацию:
php vendor/bin/oas-validate openapi.yaml
Вывод в JSON:
php vendor/bin/oas-validate openapi.yaml --format=json
Код выхода:
0— ошибок нет1— есть ошибки уровня Error
PHP-API
use On1kel\OAS\Profile31\Bootstrap\PipelineFactory; use On1kel\OAS\Contract\Profile\Enum\Strictness; $pipeline = PipelineFactory::makeDefault(); $report = $pipeline->parseAndValidate( __DIR__.'/openapi.yaml', Strictness::Strict ); foreach ($report->all() as $error) { echo "{$error->severity->name}: {$error->message}\n"; }
Основные возможности
- ✅ Профиль OAS 3.1 с декларацией поддерживаемых ключей
- ✅ Автоматическое определение версии спецификации
- ✅ Поддержка
$ref,jsonSchemaDialect,webhooks - ✅ Валидация и отчёт о нарушениях с уровнями Error / Warning
- ✅ CLI и API-использование
- ✅ Совместимость с JSON Schema 2020-12
Дополнительные проверки (OAS 3.1)
| Правило | Описание | Уровень |
|---|---|---|
NullableKeywordRule |
Обнаруживает устаревшее свойство nullable. Рекомендуется заменить на type: ["...", "null"]. |
Error / Warning |
JsonSchemaDialectRule |
Проверяет корректность URI в jsonSchemaDialect. |
Error / Warning |
Режимы строгости
| Режим | Поведение |
|---|---|
| Strict | Ошибки блокируют сборку |
| Lax | Нарушения отмечаются как предупреждения |
Архитектура
- OAS31Profile — профиль спецификации 3.1
- Profile31ValidatorFactory — создаёт валидатор с правилами 3.1
- PipelineFactory — единая точка входа (детекция, парсинг, валидация)
- ValidateCommand — CLI-интерфейс
Лицензия
MIT © on1kel
统计信息
- 总下载量: 26
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 2
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-24