epfremme/swagger-bundle

Symfony 2 扩展包,用于利用swagger库测试/模拟API合约

安装量: 4,538

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

开放问题: 2

类型:symfony-bundle

v1.0.2 2016-05-02 17:54 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:42:14 UTC


README

Symfony 2 扩展包,用于利用swagger开发和测试工具

安装

  • 需要包 composer require epfremme/swagger-bundle
  • 安装包 composer install

注意:此扩展包仅应在开发模式下使用,并作为开发依赖项包含。这些资源旨在帮助在开发过程中创建API symfony应用程序

使用方法

您可以在您的 parameters.yml 中覆盖两个主要的扩展参数

  1. swagger_bundle.swagger_file 默认: Resources/docs/swagger.yaml - 指定swagger文件
  2. swagger_bundle.mock_api 默认: true - 开启/关闭以禁用模拟API监听器

更多详细信息请见下方...

Behat 使用方法

Behat 文档: behat

  • 将 SwaggerContext 文件添加到您的 behat.yml 配置套件中

Behat 配置示例

使用 SwaggerContext 验证json模式的Behat配置示例

default:
    suites:
        app:
            paths:
                - %paths.base%/src/AppBundle/Tests/Features/
            contexts:
                - Epfremme\SwaggerBundle\Behat\SwaggerContext: ~
    extensions:
        Behat\Symfony2Extension: ~
        Behat\MinkExtension:
          sessions:
            default:
              symfony2: ~
    testers:
        rerun_cache: .behat_rerun_cache

上下文详细信息

@Given 我有请求负载

接受一个 TableNode,其中包含键值对,用作请求负载

格式:| key | value |

@When 我请求 :path

@When 我使用 :method 方法请求 :path

向API发出请求,带有或不带有请求方法(默认为GET)

@When 我使用 :schema schema

@When 我正在使用 :schema schema

将swagger文档中的swagger定义模式存储为用于验证API JSON响应数据的模式

注意:所使用的swagger文档是在 swagger_bundle.swagger_file 参数中定义的文件

@When 我测试swagger路径 :path

@When 我使用操作 :operation 测试swagger路径 :path

@When 我使用操作 :operation 和响应 :response 测试swagger路径 :path

将swagger文档中的swagger响应模式存储为用于验证API JSON响应数据的模式

注意:所使用的swagger文档是在 swagger_bundle.swagger_file 参数中定义的文件

@Then 响应应该是json

断言响应是json

@Then 响应json应包含键 :key

断言响应json包含 "key"

@Then 响应json键 :key 应等于 :value

断言响应json键等于 "value"

@Then Json响应数据应该是有效的

@Then Json响应键 :key 应该是有效的

根据先前指定的swagger定义或响应模式验证响应数据

模拟API使用方法

可以通过将 swagger_bundle.mock_api 设置为 false 来禁用模拟API。此外,请注意,如果忘记将其移动到 require-dev 或添加到内核的错误区域,监听器将不会在prod模式下运行

  1. 安装 app/console swagger:install:mock-api
  2. 向请求添加 x-mock-api 标头以触发监听器并触发模拟响应

资源

一个有用的chrome扩展,用于模拟请求头 Modheader

在swagger.json文档中可以定义的额外方法与选项 chance