Acesse nossa Plataforma

Como dissemos no artigo anterior sobre O que é API e como ela pode mudar seu negócio, construir e publicar uma API de forma errada pode comprometer toda a estratégia do seu negócio, por isso é muito importante tomar todos os devidos cuidados na hora de expor sua API.

A API é como uma abertura ao mundo de novas oportunidades, então todo cuidado é pouco!

O que fazer para expor uma API?

Caso sua empresa ainda não tenha uma API pública, o primeiro passo é entender os objetivos do negócio no plano estratégico. Somente assim, é possível fazer com que sua API atenda aos objetivos de negócio da sua empresa.

A API deve ser o reflexo do modelo de negócio para habilitar novas oportunidades de inovação aberta. Quando se expõe uma API, as possibilidades se abrem de maneira gigantesca, por isso é importante saber os objetivos do negócio.

Planejando uma API

Sem planejamento, é possível que você odeie suas APIs em pouco tempo, pois elas demandarão muita manutenção e causarão impactos diretos no seu negócio e nos de quem estiver as utilizando. Então não comece sem planejamento e sem saber as regras de negócio.

E para isso, você deverá estar familiarizado com alguns padrões e conceitos de programação. Por exemplo, você sabe o que é REST? Você sabe como funciona um Swagger? Seu time está preparado para implantar oAuth? Vamos esclarecer o que são esses padrões.

O que é REST?

Quem se lembra dos barramentos e do protocolo SOAP? Daqueles Wsdl’s enormes e pesados uma vez que eram baseados em XML? Bom eles ainda existem, e não é pequeno esse legado no mercado, mas com tanta dor de cabeça causada, um novo protocolo nasceu, o REST.

Ele é simples de ser compreendido, pois usa integralmente as mensagens HTTP para se comunicar através do que já é definido no protocolo sem precisar “inventar” novos protocolos. Usando o protocolo HTTP (verbos, headers, contente-types, estado http) de forma explícita e representativa para comunicar-se.

As URLs expõem a estrutura do serviço e utiliza uma notação comum para transferência dados em JSON ou até mesmo XML. REST não armazena estado entre a comunicação (stateless) ou seja, a comunicação é sempre independente e uniforme.

O que é Swagger?

É uma ferramenta muito simples para se criar documentação padronizada e funcional de uma API.

Sendo um pouco mais técnico, é uma ferramenta que auxilia o desenvolvedor de APIs REST a criar a documentação das suas APIs de forma padronizada, facilitando o entendimento de cada serviço existente na API e sua estrutura, sem que haja a necessidade de abrir seu código-fonte.

O que é oAuth?

O oAuth será melhor abordado no tópico sobre segurança mais a frente, mas vale ressaltar que ele é um protocolo de autorização para APIs web voltado a permitir que aplicações “cliente” acessem um recurso protegido em nome de um usuário. É o padrão de segurança mais consolidado no mercado atualmente. É praticamente nativo pensar em APIs e utilizar oAuth como padrão de segurança.

Poderíamos citar uma infinidade de padrões, conceitos, protocolos e boas práticas, afinal tenho um lado técnico que fala alto, mas com esses três pontos já é possível começar a planejar (tecnicamente) sua API.

Vale ressaltar que o planejamento vai além do técnico. Lembrando que uma API é o reflexo do seu negócio ou de um pedaço dele que você está tornando público, por isso, o planejamento funcional dessa API é tão importante quanto o planejamento técnico ou até mais importante ainda dependendo do tipo de serviço que será exposto.

É seguro transferir dados via API?

É claro que sim, se o seu time de TI estiver pensado e planejado como essa API funciona. O protocolo REST já é seguro, uma vez que utiliza do HTTP. Um simples certificado já ajuda muito para proteger a transferência dos dados, mas segurança é um assunto amplo e complexo.

A pergunta central nesse tópico seria, como seu time de TI construiu a autenticação e autorizações dessa API?

Falando sobre oAuth: O seu time de TI conhece e está preparado para implantá-lo?

Quando desenvolvemos uma API temos em mente que ela seja consumida por aplicações “cliente”. A ideia é que a lógica de negócio e os dados da aplicação possam ser acessados por meio de uma API, e o que o usuário final vai realmente utilizar, por outro lado, é um exemplo de aplicação “cliente”.

Por exemplo, você já utilizou o Waze? Pois bem, o Waze é uma aplicação “cliente” que sem que você perceba está conectado e consumindo informações de uma API pública. Além disso, as aplicações “cliente” não são necessariamente só as aplicações que interagem diretamente com o usuário final.

Qualquer aplicação que, para seu funcionamento, precisa utilizar a API web construída é uma aplicação “cliente” dessa API.

Caso existam recursos protegidos na API, ou seja, que devem ter o acesso controlado e só podem ser acessados por um usuário específico, então é preciso considerar como controlar essas diversas aplicações “cliente”. Afinal, o usuário não vai a acessar o recurso diretamente, mas vai, na verdade, delegar essa tarefa para uma aplicação “cliente”.

Por isso que é necessário o OAuth, para fazer autorização de forma segura e coerente no contexto de APIs web.

O OAuth, sendo uma especificação, descreve de forma detalhada uma maneira de tratar todos os problemas considerados.

Ele estabelece definições como:

  • Resource Owner: a entidade que é capaz de controlar o acesso a um recurso protegido.
  • Resource Server: o servidor que possui os recursos protegidos e recebe as requisições.
  • Authorization Server: é um servidor que gera tokens de acesso para o cliente com os recursos especificados.
  • Client: é a aplicação que acessa os recursos no resource server em nome do usuário. Ele pode ser qualquer tipo de aplicação que faça isso.

Com essas definições, o OAuth estabelece que quando uma aplicação “cliente” precisa acessar um recurso protegido no resource server ele deve obter um "token de acesso". Esse "token de acesso" é um token contendo as informações que caracterizam o acesso que o resource owner permitiu aos recursos protegidos.

Como integrar plataformas que não possuem APIs abertas?

Essa com certeza não é uma pergunta difícil de responder. Existem “N” maneiras de integrar as plataformas, inclusive sem uma API aberta. No entanto, o quanto vai custar (esforço x tempo) é uma questão importante.

Por exemplo, pode-se criar uma integração diretamente com um banco de dados: Uma view materializada poderia ser disponibilizada para um usuário especifico, e esse usuário compartilhado entre quem precisa consumir tais dados. Isso tem uma serie de aspectos negativos, começando por uma brecha grande de segurança. 

Você está permitindo acesso à sua rede interna, até mesmo ao seu banco de produção, e isso pode ser critico se não for bem pensado. Você perde rastreabilidade, pois na maioria das vezes um usuário genérico é criado e não um usuário por demanda. Sua regra de negócio ficará no banco mesmo? Ok, isso não é um problema se você souber o que está fazendo, mas sua regra ficará esparramada. 

A manutenção de uma integração desse tipo é complexa: não pode ser versionada, perde a compatibilidade, tem um alto acoplamento com sua infra. Na pior das hipóteses, crie uma API que encapsule a sua conexão com o banco, e de forma simples você poderia mitigar todos os pontos citados anteriormente.

Transforme o seu negócio com a Gestão de APIs

Para transformar a estratégia de negócio em direção a digitalização, é necessário remodelar a arquitetura de APIs, seja para consumo interno ou externo.

A criação de APIs habilita uma infinidade de possibilidades para inovação aberta, mas também exige uma boa gestão para evitar falhas e manutenções sem sentido. As APIs são fundamentais para a modernização das empresas, então conte sempre com uma plataforma de Gestão de APIs para escalar e alavancar o crescimento do seu negócio.

A LinkApi trabalha com integrações via API, Webservice, Banco de Dados e FTP e possui uma equipe especializada para atender qualquer tipo de projeto.

Não importa se você tem um negócio, uma loja virtual ou é uma plataforma SaaS que precisa oferecer integrações para os seus clientes, o LinkApi tem um modelo ideal para o seu tipo de negócio.

Dá uma conferida em como a LinkApi atua na integração e gestão de APIs para a Vindi.

Agende uma conversa e saiba como podemos te ajudar