Você está na página 1de 3

Guia para criação de JSON Schema

Objetivo
Este guia de desenvolvimento tem o objetivo de apresentar aos desenvolvedores da JIVE as diretrizes para criação de JSON schema de
requisição e resposta.

Situação não previstas neste documento deverão ser previamente analisadas e adicionadas a este de forma a garantir o padrão.

Documentação base: JSON Schema 2020-12

Criação de um JSON Schema

Via repositório / serverless framework


Preencher tutorial

Via AWS API Gateway


Preencher tutorial

Validações

Explicação sobre as principais validações utilizadas em nossa estrutura.

[TYPE] - Validação do tipo a ser recebido na requisição.

Tipos suportados:

null;
boolean;
object;
array;
number;

integer;
string.

Abaixo montamos um de-para entre os tipos que utilizamos no JSON schema e o possível tipo no banco de dados.

Tipo JSON schema Natureza Tipo no banco de dados

null Valor nulo N/A

boolean Flag / Binário boolean e bit

object Chave e valor json e jsonb

array Matriz N/A

number Número, Valor e Percentual numeric, decimal, money e currency

integer Identificador unico, número inteiro e smallint, int, bigint, int4, int8, int16,
quantidade smallserial, serial e bigserial
string Código, identificador (UUID), descrição, char, varchar, nvarchar, varchar2,
texto longo e data varchar(max), nvarchar(max),
varchar2(max), blob, date, time, datetime e
timestamp.

Ex:

[PATTERN] - Validação da expressão regular estabelecida.

Expressões regulares já utilizadas:

Objetivo Expressão regular

Validar data ^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$

Validar uuid ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Validar envio de valor vazio com espaço ^(?!\\s*$).+

Validar email ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$

Validar telefone (BRASIL) ^(?:(?:\\+|00)?(55)\\s?)?(?:\\(?([1-9][0-9])\\)?\\s?)(?:((?:9\\d|[2-


9])\\d{3})\\-?(\\d{4}))$

Ex:

[ENUM] - Validar se o valor passado é igual a um dos elementos da matriz estabelecida.

Ex:

[CONST] - Validar se o valor passado é igual ao elemento estabelecido.

Ex:

[MINLENGTH and MAXLENGTH] - Validar se o valor passado está entre o minimo e máximo estabelecido.

Ex:

[REQUIRED] - Validar obrigatoriedade de preenchimento das chaves inclusas na matriz.

Ex:

Meta dados
[DESCRIPTION] - Breve descrição sobre a chave ou outra estrutura do schema.

Ex:
Formatação
[FORMAT] - Vocabulário para definir informações semânticas em uma stirng.

Formatos definidos:

Formato Categoria

date-time Time

date Time

time Time

duration Time

email Emails

idn-email Emails

hostname Hostnames

idn-hostname Hostnames

ipv4 IP Addresses

ipv6 IP Addresses

uri Resource Identifiers

uri-reference Resource Identifiers

iri Resource Identifiers

iri-reference Resource Identifiers

uuid Resource Identifiers

uri-template Resource Identifiers

json-pointer JSON Pointer

relative-json-pointer JSON Pointer

regex Regular Expressions

Você também pode gostar