Skip to content

yoanm/php-jsonrpc-params-symfony-validator-sdk

Repository files navigation

JSON-RPC params symfony validator

License Code size Dependabot Status

Scrutinizer Build Status Scrutinizer Code Quality Codacy Badge

CI codecov Symfony Versions

Latest Stable Version Packagist PHP version

Simple JSON-RPC params validator that use Symfony validator component

See yoanm/symfony-jsonrpc-params-validator for automatic dependency injection.

See yoanm/jsonrpc-params-symfony-constraint-doc-sdk for documentation generation.

Versions

  • Symfony v3/4 - PHP >=7.1 : ^v1.0

  • Symfony v4/5 - PHP >=7.2 : ^v2.0

    ⚠️⚠️ v0.2.0 is replaced by v1.0.0 ! ⚠️⚠️

    ⚠️⚠️ v0.3.0 was badly taggued, used v2.0.0 instead ! ⚠️⚠️

  • Symfony v4.4/5.4/6.0 - PHP ^8.0 : ^v2.1

How to use

In order to be validated, a JSON-RPC method must :

Create the validator and inject it into request handler :

$requestHandler->setMethodParamsValidator(
  new JsonRpcParamsValidator(
    (new ValidatorBuilder())->getValidator()
  )
);

Then you can send JSON-RPC request string to the server and any method wich implements MethodWithValidatedParamsInterface will be validated.

Standalone

use Symfony\Component\Validator\ValidatorBuilder;
use Yoanm\JsonRpcParamsSymfonyValidator\Infra\JsonRpcParamsValidator;

// Create the validator
$paramsValidator = new JsonRpcParamsValidator(
  (new ValidatorBuilder())->getValidator()
);

// Validate a given JSON-RPC method instance against a JSON-RPC request
$violationList = $paramsValidator->validate($jsonRpcRequest, $jsonRpcMethod);

Params validation example

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\Constraints\Collection;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\NotNull;
use Yoanm\JsonRpcParamsSymfonyValidator\Domain\MethodWithValidatedParamsInterface;
use Yoanm\JsonRpcServer\Domain\JsonRpcMethodInterface;

class MethodExample implements JsonRpcMethodInterface, MethodWithValidatedParamsInterface
{
  /**
   * {@inheritdoc}
   */
  public function apply(array $paramList = null)
  {
    return 'result';
  }

  public function getParamsConstraint(): Constraint
  {
    return new Collection(
      [
        'fields' => [
          'fieldA' => new NotNull(),
          'fieldB' => new NotBlank(),
        ],
      ]
    );
  }
}

Violations format

Each violations will have the following format :

[
  'path' => 'property_path',
  'message' => 'violation message',
  'code' => 'violation_code'
]

Contributing

See contributing note

About

Simple JSON-RPC params validator that use Symfony validator component

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy