religisaci/codeception-api-validator

There is no license information available for the latest version (1.0.0) of this package.

Validate API Requests and Responses against Swagger / OpenAPI definitions. This package is modified awuttig/codeception-api-validator package for PHP 7.4

1.0.0 2023-02-28 16:49 UTC

This package is auto-updated.

Last update: 2024-04-28 19:34:27 UTC


README

Validate API Requests and Responses against Swagger / OpenAPI definitions

Note: this is based on awuttig/codeception-api-validator and modified for PHP 7.4

Installation

You need to add the repository into your composer.json file

    composer require --dev religisaci/codeception-api-validator

Usage

You can use this module as any other Codeception module, by adding 'ApiValidator' to the enabled modules in your Codeception suite configurations.

Enable module and setup the configuration variables

  • The schema could be set in config file directly and via $I->haveOpenApiSchema or $I->haveSwaggerSchema
modules:
    enabled:
        - \Religisaci\ApiValidator:
            depends: [REST, PhpBrowser]
            schema: '/tests/_data/swagger.yaml'
            

Update Codeception build

  codecept build

Implement the cept / cest

  $I->wantToTest('Validate request and response against OpenAPI Specification.');
  
  $I->sendGET('api/foo/bar');
  
  $I->seeRequestIsValid();
  $I->seeResponseIsValid(); 

Methods

seeRequestIsValid()

Validates the current request against the current schema definiton.

  $I->seeRequestIsValid();
  

seeResponseIsValid()

Validates the current response against the current schema definiton.

  $I->seeRequestIsValid();
  

seeRequestAndResponseAreValid()

Validates the current request and response against the current schema definiton.

  $I->seeRequestAndResponseAreValid();
  

haveOpenAPISchema()

Set the path to the OpenAPI Schema Specification

  $schema = 'file://' . codecept_root_dir('../../web/api/documentation/swagger.yaml');
  $I->haveOpenAPISchema($schema);
  

haveSwaggerSchema()

Set the path to the Swagger Schema Specification

  $schema = 'file://' . codecept_root_dir('../../web/api/documentation/swagger.yaml');
  $I->haveSwaggerSchema($schema);
  

Authors

  • André Wuttig - Concept, Initial work - aWuttig
  • Tomáš Hojgr - Modification for PHP 7.4 - Religisaci

See also the list of contributors who participated in this project.