Desenvolvimento

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

Saiba mais

Para mais posts como esse você pode curtir a página no Facebook, ou seguir no Twitter. Todos os vídeos são publicados no meu canal do Youtube (se inscreva e não esqueça de ativar as notificações). Discutimos arquitetura e compartilho muitos links legais no Grupo Arquitetura de Softwate | .NET do Facebook (que também possui um grupo de chat no Telegram).

Se quiser saber um pouco mais sobre mim, visite a página Carreira aqui no site ou no Linkedin. Você pode entrar em contato diretamente pelo Telegram ou Email !