Não faz muito tempo que apanhei horrores em uma discussão no DNA sobre Json Schemas, mas para minha sorte e daqueles que estão ao meu lado nessa empreitada, saiu no dia 10/Abril no blog .NET Web Development and Tools o artigo Intellisense for JSON Schema in the JSON Editor, que ao meu ver é extremamente interessante.
Bom, assim como a galera do grupo, você deve estar se perguntando sobre a necessidade de um Schema para Json. A resposta é muito simples: Integrações.
Qualquer integração possível e imaginável se baseia em contratos, implícitos e/ou explícitos, comportamentais e/ou estruturais.
Mas o que quer dizer isso?
Se no OAuth você tem um fluxo de chamadas de autenticação, obtenção de token e enfim chamada a recursos, esse é um contrato de comportamento, ele define um fluxo. A estrutura de cada chamada é definida por um contrato estrutural, que define qual a estrutura da requisição e da resposta de cada operação, serviço ou recurso. Um contrato implícito é aquele que você imagina ou tem apenas um exemplo daquilo que você precisa usar em contratos estruturais, um contrato explícito tem os schemas utilizados e todo o fluxo, definindo entradas e saídas de cada operação.
Mas qual a vantagem?
Bom, se acordo um contrato com um parceiro para desenvolver uma integração, acordo comportamento e estrutura de requisições e iterações. Com Schemas, a definição de estruturas é muito mais eficiente demonstrando todas as possibilidades.
De fato, tive muitos problemas com integrações REST com Json, problemas locais (no domínio da empresa onde trabalho) e problemas com parceiros externos. O problema era sempre o mesmo. Os parceiros alteravam as assinaturas dos recursos e pronto, a integração parava de funcionar. Isso tudo porque era simples escrever em linguagem não gerenciada suas respostas, marretadas em responses, seja em PHP ou em outras linguagens de scripting. Se tivesse um acordo definido por Json Schemas, poderia facilmente validar a resposta e dizer que não era compatível, no entanto na ausência deste, ouço diversas vezes que “nada foi alterado” do lado do parceiro, o que todas as vezes não era verdade.
Bom, contratos são garantias, no mundo legal e no mundo virtual, lembre-se disso. Respeitá-los é um dever de quem quer que construa uma integração.
Voltando no tópico do Blog citado no início do post, o Intelisense for JSON Schema estará disponível no Update 2 do Visual Studio 2013.
Grande abraço
0 comentários