Estou desenvolvendo algumas integrações e muitas delas utilizam como formato de dados um objeto JSON, então faço manualmente a validação da estrutura desse objeto. Tem alguma ferramenta ou função já pronta para fazer essa mesma validação ? Algo semelhante como temos para o XML onde podemos utilizar um schema e saber se a estrutura é válida de acordo como o que é esperado ?
Não falo do parser, esse é tranquilo, mas sim o que é esperado que deveria ter nos diferentes atributos e seus tipos.
2 curtidas
Olá Cirilo, não sei se te atenderia, mas acho que poderia utilizar a classe jsonObject do advpl para validar, usando o método FromJson tem como verificar se a estrutura do json está correta e ai pode criar uma função customizada para percorrer o objeto criado e validar da maneira que necessitar, segue a documentação onde possui um exemplo de validar o json.
Essa é a solução que estou fazendo atualmente, perguntei porque poderia ser que houvesse já alguma função pronta para isso.
Ah compreendo, atualmente acredito que não tenha nenhuma função padrão que realize isso…
No padrão não conheço nada que valide o contrato das api rest.
Eu criei esse método que uso para fazer validações antes de utilizar o atributo
method validateField( cFieldName as character ,;
jRecord as json ,;
cErrorMessage as character ) as logical class ValidJson
if valtype(jRecord[cFieldName]) == 'U' .or. empty(jRecord[cFieldName])
if !valtype(jRecord[cFieldName]) == 'L'
::setResult(cCodStatus=STATUS_ERROR, cPayload=jRecord, cMessage=cErrorMessage)
return .F.
endIf
endif
return .T.