API é o acrônimo para Application Programming Interface, ou Interface para Programação de Aplicativos. O termo é antigo, as API ´s são utilizadas desde o surgimento da computação para comunicação entre aplicações de um mainframe, por exemplo.
A popularização veio com a Internet e a citação formal na dissertação de doutorado intitulada “Architectural Styles and the Design of Network-based Software Architectures” de Roy Thomas, em 2000. API´s + internet trouxe a possibilidade de fazer sistemas se comunicarem através de uma rede de âmbito global. Com essa possibilidade, surgiram estruturas para tornar essa comunicação mais organizada, mais padronizada, como XML e JSON.
Estas tecnologias facilitaram a integração entre sistemas de diferentes empresas. Atualmente, empresas expõem suas API ´s para consumo por outras empresas.
Vou tentar ser simples para explicar pra que serve uma API. Imagina que você chega nos correios e quer sua encomenda. O atendente poderia simplesmente liberar seu acesso a todas as encomendas, e você pegaria a sua. É uma abordagem pouco segura e ineficiente. Você precisaria entender todos os detalhes de como as encomendas são armazenadas para pegar apenas a parte que te interessa.
Neste cenário, a API funciona como o atendente, que já sabe todo o processo de entrada e saída, e garante que suas credenciais (sua identidade e protocolo de retirada) são válidas. Além disso, ele encontra sua encomenda e entrega para você, no balcão.
A API funciona de forma parecida. O seu sistema não tem acesso à toda base de dados do outro sistema. Para proteger seu sistema e tornar o processo mais eficiente, webservices hospedam regras de negócios de forma que o acesso é restrito apenas a determinado recurso e dados.
Formatos como XML e JSON ajudam as partes a definir o que e como será entregue. Pense nestes formatos como formulários com campos que indicam qual dado deve ser registrado em cada campo. No formulário existe um campo adequado para data, outro para endereço, outro para nome. Esta é a mesma lógica para utilização dos formatos XML e JSON.
Hey,
o que você achou deste conteúdo? Conte nos comentários.