njuhel/swagger-validator

此包已被弃用且不再维护。没有建议的替代包。

这是一个用于PHP的安全和有用的库,用于请求/响应验证、安全阶段、单元测试骨架、测试自动生成等。此库可用于任何具有请求/响应Swagger定义文件的现有应用程序(无框架)

1.3.2 2017-04-24 21:30 UTC

README

Dependency Status ~ Code Climate ~ Test Coverage ~ Travis branch

Packagist ~ Composer

Swagger Validator PHP

这是一个用于PHP的Swagger(OpenAPI)验证和解析库,用于请求/响应验证、安全阶段、单元测试骨架、测试自动生成等。此库可用于任何具有请求/响应Swagger定义文件的现有应用程序。

Swagger是OpenAPI项目的旧名称,它管理着OAI规范

为什么使用Swagger验证器

Swagger验证器可以理解为对swagger定义文件的验证。Swagger解析器可以理解为请求输入的解析器(有时还解析响应)。Swagger验证器执行所有这些操作。它验证您的swagger文件,验证您的输入请求和响应。

验证/解析是必需的

  • 验证swagger可以确保您的定义文件没有错误且将被正确理解
  • 验证请求是一个安全阶段,用于过滤不良请求、尝试黑客攻击、限制和过滤工作源代码中的控制语句等
  • 验证响应也是一个安全阶段,用于在发送之前过滤不需要的信息、限制和防止错误代码攻击、限制和过滤工作源代码中的控制语句等

功能

  • 最佳实践:先Swagger,后代码
  • 验证/过滤所有请求和响应
  • 易于与任何现有框架、应用程序等集成
  • 允许从完整的MVC应用程序到HIM/API应用程序的软迁移
  • 基于swagger提供请求/响应的示例模型,用于构建自动化测试阶段、代码的人类骨架、文档骨架等
  • 根据Swagger 2.0规范和JSON Draft v4(swagger优先于JSON Draft v4)验证swagger文件
  • 定制简单:所有类都是通过不编写解析器(使用自定义工厂)来重写的
  • 与单文件和多文件swagger定义文件协同工作良好
  • 可以从多个swagger定义文件生成单个swagger定义文件
  • 允许本地和远程定义文件
  • 允许使用循环引用(仅适用于对象中不需要的属性)
  • 将验证后的请求参数存储到沙盒中,只能访问验证后的参数(并清理魔法全局变量)
  • 遵循RFC和原始类型及格式的推荐,而非本地语言理解类型和格式
  • 在解析请求/响应时使用缓存处理工作文件
  • 使用易于覆盖的IO类来收集待验证的请求/响应数据
  • 在您的环境中进行单元测试,以检查兼容性

需要完成的事项

  • 根据内容类型、接受和产生自动构建响应
  • 将范围缩小到PHP 7.1(发布 >= 1.4)
  • swagger / openapi版本3.0(发布 >= 2.0)

兼容性

  • 发布 <= 1.3:范围PHP 5.3.10(已报告错误,需要更多兼容性)到PHP 7.0
  • 发布 >= 1.4:范围PHP 7.1
  • 发布 >= 2.0:openapi发布3.0 & PHP 7.1

安装指南

  • 以子模块形式安装到git仓库中
git submodule init
git submodule add http://srv01.https://github.com/nabbar/SwaggerValidator-PHP src/lib/SwaggerValidator
git submodule update
  • 通过克隆git进行安装
git clone https://github.com/nabbar/SwaggerValidator-PHP SwaggerValidator
  • 使用composer安装(在composer.json中添加此内容)
    "require": {
        "nabbar/swagger-validator":">=1.2.0"
    },
  • 使用phar安装
wget https://github.com/nabbar/SwaggerValidator-PHP/raw/master/bin/SwaggerValidator.phar 

示例 & 文档