O objetivo da aula de hoje é apresentar de forma clara e concisa os conceitos básicos de interface de programação de aplicativos (API) e APIs web, permitindo que você entenda como essas tecnologias funcionam e possa aplicá-las em seus projetos de desenvolvimento de sites/sistemas web.
A princípio uma API (Interface de programação de aplicativos) é um conjunto de padrões, protocolos e ferramentas utilizados para construir aplicativos de software. Basicamente, uma API define uma interface entre diferentes componentes, ou seja, uma ligação ou uma tradução, permitindo que esses componentes interajam entre si de forma padronizada e segura.
Na prática, uma API pode ser utilizada para compartilhar dados e funcionalidades entre diferentes sistemas, permitindo que pessoas desenvolvedoras criem aplicativos, sites, e sistemas web que utilizam recursos de outras plataformas ou serviços. Por exemplo, uma empresa pode disponibilizar uma API para que outras pessoas desenvolvedoras criem aplicativos que acessem seus dados ou serviços.
Ao final desta lição, você será capaz de entender todo o funcionamento de uma API em seu conceito e, também, sobre APIs para a plataforma web.
No mercado de trabalho, provavelmente, você irá se deparar com situações em que precisará fazer com que dois software distintos se comuniquem – pode ser o seu site com um serviço web ou com um serviço de outro sistema interno da sua empresa.
O uso de APIs vem justamente para resolver esse problema de interoperabilidade entre diferentes sistemas e plataformas, sejam elas em quaisquer linguagens. Sem as APIs seria difícil para pessoas desenvolvedoras criar aplicativos que utilizem serviços ou dados de outras plataformas de forma padronizada e principalmente, segura.
As APIs permitem que sistemas distintos possam se comunicar de forma eficiente possibilitando a criação de novas soluções e serviços que, de outra forma, seriam inviáveis. Além disso, as APIs ajudam a reduzir o tempo e o custo do desenvolvimento de software, pois as pessoas desenvolvedoras podem aproveitar funcionalidades e recursos disponíveis nas APIs em vez de criar tudo do zero. Isso aumenta a eficiência do desenvolvimento e possibilita a criação de aplicativos mais avançados e sofisticados em um período mais curto.
Outro problema que as APIs resolvem é a capacidade de criar aplicativos que sejam compatíveis com diferentes dispositivos e plataformas, permitindo que eles possam ser executados em smartphones, tablets, desktops, sites entre outros, aumentando a acessibilidade e a usabilidade dos aplicativos.
Acho que você começou a entender como as APIs auxiliam no trabalho das pessoas desenvolvedoras, não é mesmo?
Hoje irei apresentar um case fictício sobre uma empresa chamada Project Bootstrap, a qual é uma empresa que começou a trabalhar com equipes remotas e para isso precisou desenvolver um sistema de gerenciamento de projetos para sua equipe, mas não queria criar tudo do zero. Ao invés disso, optou por utilizar APIs web de serviços de armazenamento de arquivos, gerenciamento de tarefas e comunicação para construir seu sistema.
A equipe de desenvolvimento da empresa, então, integrou as APIs de diferentes serviços e criou uma plataforma personalizada para a empresa, economizando tempo e recursos no desenvolvimento. O sistema, depois de finalizado, permitiu que a equipe trabalhasse de forma colaborativa em projetos, compartilhando arquivos e tarefas em tempo real, além de se comunicarem através de mensagens e videoconferências integradas.
A utilização de APIs permitiu que a empresa Project Bootstrap criasse um sistema robusto e personalizado para suas necessidades específicas, sem ter que se preocupar em desenvolver tudo do zero ou ainda ter algum software que lhe atendesse pela metade, ou o que é ainda pior, ter vários softwares espalhados cada um para um objetivo, com usuários e senhas, que acaba deixando a equipe confusa e a informação não consolidada.
O case, apesar de fictício, demonstra uma situação em que as APIs foram utilizadas e mostra que a utilização de APIs web no desenvolvimento de sistemas web pode trazer muitos benefícios, desde a economia de tempo e recursos até a criação de soluções personalizadas para as necessidades de cada empresa.
Antes de entrar no mundo dos conceitos de API e APIs web, acho importante, primeiramente, que você entenda o que é uma API – Application Programming Interface – ou em português, Interface de Programação de Aplicativos. Uma das definições que mais gosto é a da plataforma de serviços de computação em nuvem, a Amazon Web Services (AWS) (2023), que diz que APIs são mecanismos que permitem que dois componentes de software se comuniquem usando um conjunto de definições e protocolos. Mas é claro que posso detalhar mais um pouco para você se ficou muito abstrata tal definição.
Podemos detalhar mais o que é um API partindo do seguinte princípio: a API é um conjunto de rotinas, protocolos e ferramentas (códigos e processos) usado para a criação de softwares e aplicativos. É ela (API) que define como determinado software deve se comunicar com outros, permitindo que diferentes aplicações possam interagir e trocar informações entre si, mesmo que não sejam construídas usando a mesma linguagem de programação, por exemplo.
Toda API segundo Muniz et al. (2023), expõe um contrato de comunicação para que o seu utilizador possa executar as operações disponíveis. Com esse padrão, você sempre terá uma interface que abstrai a complexidade e facilita a integração entre componentes de um sistema que é o conceito base no desenvolvimento de software. Essa forma diferente de pensar em construir software e organizar os componentes, bem como as funcionalidades, favorece a manutenção que, por sua vez, está ligada à facilidade de executar correções e melhorias no software em questão.
Sempre é válido ressaltar que, independentemente, do padrão, formato e/ou características, APIs, de maneira geral, podem ser públicas ou privadas, dependendo do objetivo de uso e da política de acesso do proprietário da API. Em linhas gerais, significa que nas APIs públicas qualquer pessoa de posse de sua documentação, bem como links etc. tem acesso e conseguirá se beneficiar com seus serviços. Quando dizemos que uma API é privada pode ser que ela seja somente de uso interno da empresa e, também, é liberada conforme contrato à terceiros, não sendo disponibilizada para "curiosos(as)".
E quando se fala em API e API web, qual é a diferença? Bem, a principal diferença entre uma e outra é que uma API web é projetada, especificamente, para ser usada em aplicativos web, enquanto a API pode ser usada em diferentes tipos de aplicativos, incluindo aplicativos móveis, desktops entre outros.
Além disso, uma API web, geralmente, é projetada para ser acessada por meio de URLs - Uniform Resource Locator – ou em português Localizador Uniforme de Recursos – o que permite que as pessoas desenvolvedoras acessem as funcionalidades da API por meio de um navegador ou de outras ferramentas que suportem protocolos HTTP e HTTPS. Enquanto isso, uma API pode ser acessada por meio de diferentes protocolos, como SOAP, REST, XML-RPC, entre outros.
Conhecendo o termo API, chegou a hora de saber quais as principais características e tipos de APIs você pode consumir, utilizar, criar e fornecer. Vamos começar com as principais características:
Comunicação entre diferentes sistemas: as APIs permitem que diferentes sistemas se comuniquem e interajam entre si, permitindo a troca de dados e informações.
Padronização: as APIs são padronizadas, ou seja, seguem um conjunto de regras e especificações para garantir a compatibilidade e interoperabilidade entre diferentes sistemas.
Abstração: as APIs abstraem os detalhes da implementação do sistema subjacente, fornecendo uma interface simplificada e consistente para os usuários.
Modularidade: as APIs são modulares, permitindo que diferentes partes do sistema sejam acessadas e usadas separadamente.
Segurança: as APIs são projetadas com recursos de segurança para proteger os dados e informações dos usuários.
Sabendo das suas principais características, agora posso lhe apresentar os tipos de APIs, que hoje, existem três principais, sendo elas:
APIs internas ou privadas: usadas para comunicação entre diferentes módulos ou sistemas internos de uma organização.
APIs externas ou públicas: disponíveis para uso externo, geralmente para pessoas desenvolvedoras terceiras construírem aplicativos que se integram ao sistema subjacente.
APIs de terceiros: criadas por terceiros e disponíveis para serem usadas em aplicativos ou serviços de outras empresas.
Por ser uma prática muito utilizada hoje, pode-se dizer que é o padrão de desenvolvimento, e, por isso, é importante listar para você as principais vantagens de se utilizar API em relação a outras estratégias:
Reutilização de recursos: com uma API bem projetada e documentada, outras aplicações podem facilmente se integrar e reutilizar os recursos disponíveis, o que reduz o tempo de desenvolvimento e aumenta a eficiência.
Padronização: as APIs geralmente seguem um padrão definido, o que facilita a integração entre sistemas e a comunicação entre diferentes equipes de desenvolvimento.
Escalabilidade: as APIs podem ser escaláveis, o que significa que elas podem lidar com um grande volume de solicitações de uma forma eficiente, sem comprometer o desempenho.
Melhoria da experiência do usuário: as APIs permitem a criação de novas interfaces de usuário personalizadas e integradas com outros aplicativos, o que melhora a experiência do usuário e aumenta a fidelização.
Inovação: as APIs permitem a criação de novos produtos e serviços, possibilitando inovações em diversos setores.
Redução de custos: a utilização de APIs pode reduzir os custos de desenvolvimento, já que é possível reutilizar recursos e integrar facilmente diferentes sistemas.
Maior agilidade: com a utilização de APIs, as equipes de desenvolvimento podem trabalhar de forma mais ágil, reduzindo o tempo de desenvolvimento e aumentando a rapidez na entrega de novos produtos e serviços.
Para obter em sua totalidade as vantagens de utilização de uma API você terá que implementar algumas boas práticas que são amplamente utilizadas no mercado e que ajudam na obtenção de todos os melhores resultados:
Uma documentação clara e concisa é fundamental para garantir que as pessoas desenvolvedoras possam usar a API de maneira eficiente. Ela deve incluir informações sobre os endpoints disponíveis, os parâmetros de entrada e saída, e exemplos de utilização.
A API deve ter um sistema de autenticação seguro para garantir que apenas usuários autorizados possam acessá-la. Isso pode ser feito hoje com o uso de chaves de API, tokens de acesso entre outros.
É importante manter diferentes versões da API para que os desenvolvedores possam atualizar suas integrações de acordo com suas necessidades. A versão atual deve ser claramente identificada na documentação e nas chamadas da API.
Antes de lançar uma nova API ou atualização, é importante testar exaustivamente todas as funcionalidades e integrações para garantir que elas funcionem corretamente. Testes de integração e testes de unidade são essenciais para garantir a qualidade da API.
Ao desenvolver uma API, é importante seguir as melhores práticas e padrões do mercado para garantir a interoperabilidade e a facilidade de uso para as pessoas desenvolvedoras.
É fundamental oferecer suporte aos usuários da API e estar aberto a feedbacks e sugestões de melhorias. Isso ajuda a garantir a satisfação dos usuários e aprimorar a qualidade da API ao longo do tempo.
Na aplicação dos conceitos de API, irei lhe apresentar um software fantástico que serve tanto para compartilhar com sua equipe a coleção de endpoints de sua API quanto para documentar sua API e compartilhá-la com clientes, em caso de uma API comercial. Esse software é chamado Postman.
Para isso, você terá que instalar o Postman em sua máquina e seguir os seguintes passos:
Acesse o site do Postman On-line: https://www.postman.com.
Crie uma conta gratuita ou faça login, se já tiver uma conta.
No canto superior esquerdo selecione Workspaces e clique em My Workspace.
Na parte central superior da tela no campo de search, digite Public Api REST e selecione o segundo link que é de uma Collection.
Agora na página da collection, clique no canto superior direito no botão Fork para gerar uma cópia dessa collection para sua conta.
Clique no botão laranja escrito “Fork Collection”.
No canto esquerdo clique em Public REST APIs, clique novamente em Pokemon e novamente em Pokemon Search.
Clique no botão azul Send;
Você verá na parte inferior da página uma resposta JSON.
O que você fez foi consumir uma API pública, no caso a https://pokeapi.co/api/v2/pokemon/ditto/ que lista os pokemons categorizados por habilidade. Agora de posse de outras collections, você poderá “brincar” com várias outras APIs públicas.
AWS. O que é uma API. c2023. Disponível em: https://aws.amazon.com/pt/what-is/api/. Acesso em: 26 maio 2023.
MUNIZ, A. et al. Jornada API na Prática unindo conceitos e experiências do Brasil para acelerar negócios com tecnologia. 1. ed. Rio de Janeiro: Brasport, 2023.