APIs

APIs: uma visão prática

Imagine que você precisa fazer um sistema ou aplicativo para melhorar os processos de sua empresa. Neste sistema é necessário cadastro de usuário, informações de calendário, gestão de contatos, rotas para chegar a um destino e gestão de tarefas.

Para desenvolver tudo isto, você vai gastar muito tempo, muito dinheiro e as chances de ter problemas são grandes.

Agora, pensando no mesmo cenário imagine que:
* Seu cadastro de usuário será feito através da integração de Login com o Google/Facebook/Twitter
* Seu calendário na verdade irá utilizar a API de calendário do Google ou Microsoft
* Sua gestão de contatos utilizará a API do FullContact (https://www.fullcontact.com/)
* Rotas ficarão resolvidas através das integrações com Wase ou Google Maps
* Gestão de tarefas ficará integrado com o Toodledo, RunRunIt ou Asana

Viu? Você iria utilizar o melhor de cada serviço, concentrados em seu sistema ou app com menor esforço e menor risco.

Esta é a vantagem da API: dar poder aos sistemas consumindo os serviços já consolidados e maduros e evoluindo suas funcionalidades.

O uso de APIs

Abaixo seguem algumas APIs mais utilizadas na web:

  • Facebook – login, timeline, contatos e todo o potencial da rede social é usada (e abusada) por muitos sistemas
  • Google Maps – sistemas de roteirização, aplicativos terceiros e outros usos tornam esta API bastante disputada
  • Twitter – assim como o Facebook seu uso é comum e, uma curiosidade é que ela foi a primeira API embarcada no iOS
  • Youtube – pensou em hospedagem de vídeo e uso em outras frentes, pensou em Youtube
  • Linkedin – o Linkedin e suas APIs são muito utilizadas para sistemas corporativos e geradores de estatísticas do mercado
  • Pinterest – ganhando força, a plataforma de imagens está sendo bastante usada para análise de audiência

E tantas outras que estão em nosso dia e que acabam passando desapercebidas:

  • Cotação de moedas
  • Previsão do tempo
  • Tradução em tempo real
  • Horário em outros países
  • Consulta de CEP (Correios)
  • Pesquisa de hotéis e viagens (Decolar.com, CVC, Booking.com)

Confiabilidade

O que determina a qualidade de uma API é sua estabilidade. Mudanças que um desenvolvedor precisa fazer em uma API que é consumida por múltiplos clientes deve ser feita de forma a evoluir a mesma e não quebrar seu contrato prejudicando quem utiliza tais informações.

Quando tais “quebras” forem inevitáveis devem ser avisadas com antecedência, além de boa documentação de como corrigir e consumir o novo serviço.

APIs na Web e seus usos

  • REST – mais simples e mais leve, usado em ambientes de maior limitação de recursos de rede e processamento
  • SOAP/WSDL – maior confiabilidade e segurança, além de manter informações entre as chamadas, porém é mais pesado e requer maior processamento
  • Entre outras.

Segurança
Agora que você viu o poder da API e achou que é interessante também compartilhar o uso de seus sistemas para o público você pode se perguntar: é seguro?

Para responder a esta pergunta é necessário considerar 4 características que devem ser analisadas na criação e exposição de uma API: autenticação, autorização, federação e delegação.

  • Autenticação: é a camada de segurança que gerencia especificamente a identidade de quem requisita o serviço. Esta identidade pode ser feita através de usuário/senha, chave pública, ID, etc. O objetivo aqui é saber quem é o seu requisitante.
  • Autorização: continuação da autenticação. Uma vez que eu reconheço quem é meu requisitante, eu preciso conceder quais acessos este usuário poderá ter. Assim eu limito que um robô que se disfarçou de um requisitante conhecido possa acessar serviços que tal usuário não deva acessar.
  • Federação: é a capacidade de um requisitante reutilizar suas credenciais várias vezes. Após a primeira autenticação, o requisitante ganha um TOKEN que é usado dali em diante até o tempo de expiração deste TOKEN.
  • Delegação: a delegação já se refere ao número de operações que o TOKEN gerado poderá executar antes de sua expiração.

OAuth e OpenID são exemplos de padrões que implementam os critérios acima de segurança.

Boas práticas na exposição de APIs

  • Mapear dados de acordo com necessidades do consumidor e não pensando em seu modelo de dados
  • Mensagens de erros que façam sentido ajudam muito
  • Disponibilizar uma documentação sólida da API reduz a necessidade de ajuda externa
  • Utilizar uma API de segurança apropriada
  • Tenha um ambiente de testes (playground)
  • Alimente um bom FAQ
  • Crie um canal de comunicação com o desenvolvedor
  • Deixe claro preços, tipo de acesso e limitações de uso
  • Mantenha um histórico
  • Invista em um roadmap e novas funcionalidades
  • Destaque projetos que usam a API

Más práticas na exposição de APIs

  • Limitar o uso do sistema é algo terrível de se fazer
  • APIs que requerem mais de uma chamada para realizar uma única são péssimas
  • Retornar HTML como resposta
  • Os efeitos colaterais dos erros 500 são infernais

O Futuro das APIs

Com a evolução da Internet das Coisas (IoT), cidades estarão conectadas e cada vez mais estas informações serão utilizadas pelas empresas para análise de risco de seu negócio.

Exemplos:

  • uma seguradora que tenha informação de como uma pessoa dirige seu carro através de sensores que digam o consumo de combustível, o uso de freios e pneus pode determinar o grau de risco de acidente deste motorista;
  • um convênio médico pode saber do estado de saúde do seu conveniado através de APIs de vestíveis como Nike Fuel+ ou GPS da Tomtom;
  • sensores da Nest são capazes de detectar a velocidade com que o fogo está tomando o ambiente logo no início e, com uma estratégia de API pública o que pode acionar os bombeiros.

Conclusão
Vários mercados estão cada vez mais utilizando APIs e também gerando APIs para consumo da comunidade.

No mercado financeiro por exemplo boas APIs estão surgindo tais como:

  • Nubank: tokens para operação e carteiras digitais como Apple Pay, Android Pay e Samsung Pay
  • Paypal / Pagseguro / Moip: Clientes, Pedidos, Pagamentos, Saldo, etc.
  • Bradesco / Itaú: boletos, conciliação bancária, extratos, compensação de cheque
  • Mercado Livre: conciliação bancária
  • Correios: tracking de mercadoria

Também é bastante comum a exposição de pequenos serviços do ERP das empresas na internet com o objetivo de gerenciar equipes externas, conexões com fornecedores e canal diretos com os clientes usando APIs.

A Tegra tem desenvolvido algumas APIs em seus clientes de uso entre os canais de distribuição de seus parceiros (fornecedores, representantes e distribuidores) o que tem proporcionado agilidade e autonomia, gerando diferencial competitivo para nossos clientes.

Os principais desafios das APIs já foram superados como performance, segurança e robustez. Temos uma poderosa ferramenta para criar novos canais para as empresas.

Até a próxima!

William Polis

Com mais de 10 anos de experiência em diversos papéis de TI e um ótimo histórico de sucesso na execução de projetos nos mais diversos tipos de mercado (industrial, logístico, atacado, varejo, militar, etc.) e em diferentes portes de empresa (nacionais e multinacionais). Mestrando pela Ufscar, possui foco em inovação com mobilidade.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>