O conteúdo desse post é uma amostra de aula do curso “Automação e Programabilidade de Redes“, que faz parte da trilha para o CCNA da DlteC
Uma API ou “Application Programming Interface” é um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web.
Em tradução para o português “Interface de Programação de Aplicativos“.
Portanto, uma API permite que você crie uma comunicação direta com uma aplicação sem conhecimento ou intervenção dos usuários, pois elas funcionam através da comunicação de diversos códigos, definindo comportamentos específicos de determinado objeto em uma interface.
Por exemplo, uma controladora de rede utiliza Java em sua API, então quaisquer fabricantes ou desenvolvedores podem escrever aplicativos (apps) utilizando as regras desse API para trocar informações com esse controller dentro do mesmo sistema operacional.
Essa aplicação pode coletar informações sobre os dispositivos de rede (1) e até programar como os fluxos serão encaminhados na rede entre os dispositivos, alterando as informações das tabelas de encaminhamento dos dispositivos (2), por exemplo.
O REST (Representational State Transfer) permite que os aplicativos em diferentes hosts utilizem mensagens HTTP para transferir dados entre eles.
Por exemplo, o controller está em uma determinada VM e as aplicações em outra VM, portanto nesse exemplo os aplicativos precisam enviar e receber mensagens pela rede IP, por isso precisam utilizar APIs RESTful.
Com o REST tudo começa com um aplicativo enviando um HTTP GET (1) solicitando uma URI (Uniform Resource Identifier ou Identificador de Recursos Universal) específica.
Esse HTTP GET é como um HTTP GET normal, igual ao que utilizamos para solicitar páginas da Internet.
Só que ao invés de solicitar uma página da web, essa URI identifica um objeto específico no controller, normalmente uma estrutura de dados que a aplicação precisa para processar uma determinada informação.
O URI pode identificar um objeto que é a lista de interfaces que um dispositivo possui e o estado operacional de cada uma dessas interfaces.
Utilizando o API do REST o controller recebe esse GET da aplicação, processa e responde com outra mensagem HTTP GET (2) contendo o objeto solicitado pelo aplicativo (3).
Em maioria dos APIs que utilizam o REST será solicitado e enviado estruturas de dados ao invés de páginas de web como você receberia em um browser, normalmente essa resposta contém nomes e valores de variáveis, tudo em um formato que pode ser facilmente utilizado por um programa de computador.
Os formatos mais comuns utilizados em redes programáveis são o JSON (JavaScript Object Notation), XML (eXtensible Markup Language) e YAML (YAML Ain’t Markup Language).
Esse curso faz parte da trilha preparatória para a prova Cisco CCNA 200-301. São 126h de conteúdo que preparam você para passar na prova com sucesso.
Confira abaixo todos os cursos da trilha Cisco CCNA 200-301: