REST Normalizer: Validate and filter parameters based on JSON rules

Recommend this page to a friend!
  Info   View files (6)   Download .zip   Reputation   Support forum (1)   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 320 All time: 7,121 This week: 295
Version License PHP version Categories
rest-normalizer 1.0.1BSD License5.0PHP 5, Validation
Description Author

This class can validate and filter parameters based on JSON rules.

It can take a list of request parameters passed as an array or as a JSON string and validates it according to rules defined in an external files in the JSON format.

The class can traverse the parameter data and check if the entries match the types and validation rules defined in the rules file for the specific type of request.

Invalid values may be discard and logged to a given log file.

The class may also call callback functions before and after the normalization process.

Picture of Dmitry Mamontov
  Performance   Level  
Name: Dmitry Mamontov <contact>
Classes: 15 packages by
Country: Russian Federation Russian Federation
Age: 29
All time rank: 88632 in Russian Federation Russian Federation
Week rank: 79 7 in Russian Federation Russian Federation
Innovation award
Innovation award
Nominee: 6x

Details

Latest Stable Version License Total Downloads

REST Normalizer

This class can validate and filter parameters based on JSON rules.

It can take a list of request parameters passed as an array or as a JSON string and validates it according to rules defined in an external files in the JSON format.

The class can traverse the parameter data and check if the entries match the types and validation rules defined in the rules file for the specific type of request.

Invalid values may be discard and logged to a given log file.

The class may also call callback functions before and after the normalization process.

More information.

Requirements

  • PHP version >5.0

Installation

1) Install composer

2) Follow in the project folder:

composer require dmamontov/restnormalizer ~1.0.1

In config composer.json your project will be added to the library dmamontov/restnormalizer, who settled in the folder vendor/. In the absence of a config file or folder with vendors they will be created.

If before your project is not used composer, connect the startup file vendors. To do this, enter the code in the project:

require 'path/to/vendor/autoload.php';

Data types and values to be formatted

The data type "string"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default
  • max - The maximum allowable length of the string
  • min - The minimum allowable length of the string
  • pad - Supplemented with the symbol (default: " ")
"example": {
        "type": "string",
        "required": false,
        "default": "example",
        "max": 15,
        "min": 4,
        "pad": "+"
}

The data type "int"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default
  • max - The maximum allowable value
  • min - The minimum allowable value
"example": {
        "type": "int",
        "required": true,
        "default": 55,
        "max": 203,
        "min": 10
}

The data type "double"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default
  • max - The maximum allowable value
  • min - The minimum allowable value
  • decimals - The number of digits after the decimal point
"example": {
        "type": "double",
        "required": true,
        "default": 5,
        "max": 20.5,
        "min": 1.1,
        "decimals": 5
}

The data type "bool"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default
"example": {
        "type": "bool",
        "required": true,
        "default": true
}

The data type "datetime"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default (default: "now")
  • format - Date and time format
"example": {
        "type": "datetime",
        "required": true,
        "default": "now",
        "format": "Y-m-d H:i:s"
}

The data type "enum"

  • required - Checking the mandatory values, accepts parameters (true, false)
  • default - Default
  • values - An array of enumerated values
"example": {
        "type": "enum",
        "required": true,
        "default": 999,
        "values": [1, 5, 999]
    }

The data type "skip"

"example": {
        "type": "skip"
}

Example of work

require_once 'RestNormalizer.php';
$n = new RestNormalizer();
$n->logFile = 'valid.log';
$n->setValidation('you-valid.json');

$data = array(
	'key1' => 'value1',
	'key2' => 'value2',
	'key3' => 'value3'
);
$data = $n->normalize($data)
  Files  
File Role Description
example (1 file)
composer.json Data Auxiliary data
example.php Example Example script
LICENSE Lic. License text
README.md Doc. Documentation
RestNormalizer.php Class Class source

  Files  /  example  
File Role Description
   retailcrm.json Data Auxiliary data

 Version Control Unique User Downloads Download Rankings  
 100%
Total:320
This week:0
All time:7,121
This week:295
User Comments (1)
Good class, can be useful.
5 years ago (Vasiliy Trutov)
80%
 

For more information send a message to info at phpclasses dot org.