Sumario

O que é o Sirius?


Introdução

Pala facilitar a comunicação entre nós e nossos parceiros e clientes decidimos construir uma API que exponha nossos servicos para consumo e integração.

Aderimos as boas praticas de mercado adotandoo o Restfull como metodologia padrão.

O Sirius

Uma plataforma com o desafio de se comunicar com o cliente da maneira mais simples, performatica e segura. Foi com base nesses três principios que a TEVEC® optou por disponibilizar seus mecanismos através de uma API REST.

Sirius é uma plataforma facilitadora para o cliente, foi desenvolvida em cima dos conceitos de uma API REST, seguindo todas as boas práticas do protocolo HTTP e do conceito REST para fornecer da melhor maneira os recursos para os consumidores da API.

Para garantir uma comunicação simples com o cliente o conceito de API baseada em REST se encaixa perfeitamente, pois a desenvolvemos utilizando a estrutura JSON. Uma estrutura bem organizada e mais leve para transferências de dados em requisições via HTTP e muito menos verbosa que outras estruturas de transferências, como o XML. Isto garante uma conversação muito mais simples entre o cliente e a TEVEC®.

O fato da estrutura baseada em JSON ser menos verbosa e consequentemente mais leve, torna uma requisição muito mais performatica já que estamos enviando os mesmos dados que outra estrutura enviaria, mas com muito menos verbos para estruturar a requisição. Segue abaixo um exemplo de resposta de requisição estruturada em XML e outra baseada em JSON, ambas fornecendo os mesmos dados:

Resposta em XML:

GET http://tevec.com.br/api/v1/receitas/1
<?xml version="1.0" encoding="ISO-8859-1"?>
<receita>
    <produto_final>
        <href>http://tevec.com.br/api/v1/produtos/1</href>
        <rel>produtos final</rel>
    </produto_final>
    <lote_producao>10.0</lote_producao>
    <insumos>
        <insumo>
            <href>http://tevec.com.br/api/v1/produtos/1</href>
            <rel>produto insumo</rel>
        </insumo>
    </insumos>
    <tipo>fixa</tipo>
</receita>

Resposta em JSON:

GET http://tevec.com.br/api/v1/receitas/1
{
    "produto_final":{
        "href":"http://tevec.com.br/api/v1/produtos/1",
        "rel":"produtos final"
    },
    "lote_producao":10.0,
    "insumos":[
        {
            "href":"http://tevec.com.br/api/v1/produtos/1",
            "rel":"produto insumo"
        }
    ],
    "tipo":"fixa"
}

Com estes dois exemplos fica bem explicito os ganhos em questão de tamanho ao utilizar uma estrutura no formato JSON. Tendo em vista que esta é uma resposta de requisição pequena, imagine agora uma escala de resposta muito maior e coloque na balança os ganhos em diminuir alguns verbos na resposta da requisição.

A segurança da API é baseada no protocolo OAuth2, esse protocolo diferentemente do OAuth1 (que mantem o foco em autenticação) mantem o foco em autorização. Através de uma token gerado pelo servidor de autenticação da API e enviado para o cliente da API, os mecanismos de autorização do OAuth2 conseguem validar o acesso do cliente ao recurso da API apenas validando o token enviado via requisição pelo cliente, sem que o mesmo precise se autenticar na plataforma novamente fornecendo seu e-mail e senha. Com o uso de OAuth2, ganhamos novamente em performance e sem diminuir o nivel de segurança, pois não precisamos autenticar o cliente em todas novas requisições, apenas validamos o token gerado pelo servidor de autenticação da API.

Em conclusão, para exemplificar melhor a posição da plataforma Sirius na arquitetura TEVEC®, podemos utilizar a analogia de uma ponte interligando duas cidades, o Sirius seria a ponte, o cliente e a TEVEC® seriam as cidades.