Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/awncorp/sql-validator

Validate JSON-SQL Schemas
https://github.com/awncorp/sql-validator

json json-schema json-sql perl perl5 sql

Last synced: about 2 months ago
JSON representation

Validate JSON-SQL Schemas

Awesome Lists containing this project

README

        

NAME

SQL::Validator - Validate JSON-SQL

ABSTRACT

Validate JSON-SQL Schemas

SYNOPSIS

use SQL::Validator;

my $sql = SQL::Validator->new;

# my $valid = $sql->validate({
# insert => {
# into => {
# table => 'users'
# },
# default => 1
# }
# });

# i.e. represents (INSERT INTO "users" DEFAULT VALUES)

# die $sql->error if !$valid;

# $sql->error->report('insert');

DESCRIPTION

This package provides a json-sql
data structure
validation library based on the JSON-SQL json-schema
standard.

ATTRIBUTES

This package has the following attributes:

schema

schema(Any)

This attribute is read-only, accepts (Any) values, and is optional.

validator

validator(InstanceOf["JSON::Validator"])

This attribute is read-only, accepts (InstanceOf["JSON::Validator"])
values, and is optional.

version

version(Str)

This attribute is read-only, accepts (Str) values, and is optional.

METHODS

This package implements the following methods:

error

error() : InstanceOf["SQL::Validator::Error"]

The error method validates the JSON-SQL schema provided.

error example #1

# given: synopsis

$sql->validate({select => {}});

my $error = $sql->error;

error example #2

# given: synopsis

$sql->validate({select => { from => { table => 'users' } } });

my $error = $sql->error;

validate

validate(HashRef $schema) : Bool

The validate method validates the JSON-SQL schema provided.

validate example #1

# given: synopsis

my $valid = $sql->validate({
insert => {
into => {
table => 'users'
},
default => 1
}
});

# VALID

validate example #2

# given: synopsis

my $valid = $sql->validate({
insert => {
into => {
table => 'users'
},
default => 'true' # coerced booleans
}
});

# VALID

validate example #3

# given: synopsis

my $valid = $sql->validate({
insert => {
into => 'users',
values => [1, 2, 3]
}
});

# INVALID

AUTHOR

Al Newkirk, [email protected]

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under
the terms of the The Apache License, Version 2.0, as elucidated in the
"license file"
.

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues