fbpx
Contratos são garantias – JSON Schema
Publicado em: segunda-feira, 14 de abr de 2014
Categorias: 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

[default]

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[special-full-page]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.