API: Teoria e questões

Um tópico que tem caído sido pedido bastante em concursos da carreira policial (junto com Python e Linguagem R) é API. Mas o que é essa interface? Vamos entender o que é, para que serve, onde é usada e vamos responder algumas questões de concursos. Simbora!

Por
10 min. de leitura

Fala, meus consagrados! Tudo beleza com vocês?

Um tópico que tem caído sido pedido bastante em concursos da carreira policial (junto com Python e Linguagem R) é API (Application Programming Interface – Interface de Programação de Aplicações). Mas o que é essa interface? Vamos entender o que é, para que serve, onde é usada e vamos responder algumas questões de concursos. Simbora!

Estou reunindo em um artigo apenas todos conceitos, analogia, exemplos de uso, benefícios e vantagens sobre API. São várias referências que podem ajudá-los com esse assunto que pode ser um diferencial nas provas da Polícia Federal (PF) e Polícia Civil do DF (PCDF). Além disso, trago questões de concursos que já cobraram esse tópico.

Teoria

Conceituação

API é uma sigla para Application Programming Interface (Interface de Programação de Aplicações).

Para nosso estudo sobre API, trago várias conceituações de várias fontes. Mais na frente, teremos uma analogia bacana para que possamos ter um entendimento melhor desse assunto.

API é um conjunto de [2]:

  • Definições e protocolos;
    • Usados no desenvolvimento e na integração de aplicações de software; e
  • Rotinas e padrões de programação;
    • Para acesso a:
      • Aplicações de software; ou
      • Plataforma baseada na Web.

É composta por uma série de funções [4]:

  • Acessíveis somente por programação;
  • Que permitem utilizar características do software menos evidentes ao utilizador tradicional.

Fiquem atentos: o uso de API’s é feito via programação e não é um uso para um usuário final.

API é uma forma de integrar sistemas [3]:

  • Que podem possuir linguagens de programação totalmente distintas;
  • De maneira:
    • Ágil; e
    • Segura;
  • Possibilitando:
    • Segurança dos dados;
    • Facilidade no intercâmbio entre informações;
      • Com diferentes linguagens de programação; e
    • Monetização de acessos.

Permite que uma solução ou serviço se comunique com outros produtos e serviços [2]:

  • Sem precisar saber como eles foram implementados;
  • Isso simplifica o desenvolvimento de aplicações;
    • Gerando economia de:
      • Tempo; e
      • Dinheiro.

Fiquem atentos: API é um assunto que pode ser colocado no tópico de Integração de Sistemas.

Ao desenvolver novas ferramentas e soluções ou ao gerenciar aquelas já existentes, uma API oferece [2]:

  • A flexibilidade necessária para simplificar:
    • O design;
    • A administração; e
    • O uso;
  • Oportunidades de inovação.

As APIs costumam ser vistas como contratos [2];

  • Com documentações que representam um acordo entre as partes interessadas;
  • Se uma dessas partes enviar uma solicitação remota estruturada de uma forma específica;
    • Isso determinará como o software da outra parte responderá.

Fiquem atentos: para usar uma API, é necessário entender as condições de uso e o que pode ser retornado.

Esquema

Figura 1: esquema do uso de uma API.

Figura 1: esquema do uso de uma API.

Na figura 1, podemos entender um pouco a mais sobre uma API. Ela faz uma “ponte” (área da interface) entre um sistema (área de programming) e as informações necessárias por esse sistema (área de application). O sistema precisa de informações e usará a API para solicitar e trazer infornações.

Garçom: o herói que não usa capa

Figura 2: API, o garçom das aplicações.

Figura 2: API, o garçom das aplicações.

Um cliente (uma aplicação feita na Linguagem Java, por exemplo) chega a um restaurante. O cliente está com uma fome canina e precisa saber o que restaurante oferece. Para isso, pede ao garçom (API) o cardápio (contrato para usar a API). De posse do cardápio, o cliente solicita (requisição à API) seu pedido (informações que a aplicação Java está precisando): uma carne de sol na manteiga da terra, acompanhada de um baião de dois e macaxeira cozida, além de uma cerveja Glacial geladinha.

Com o pedido em mãos, o nosso herói sem capa, o garçom, vai à cozinha (o sistema que detém as informações que a aplicação Java precisa) e faz a solicitação em nome do cliente. A cozinha prepara o pedido e chama o nosso consagrado garçom para entregar o pedido do cliente (as informações prontas para serem consumidas pela aplicação Java). De posse do pedido, o cliente vai consumir aquela carne de sol com uma Glacial tricando.

O garçom é a interface entre o cliente e a cozinha. Não é necessário que o cliente se dirija à cozinha para fazer o pedido diretamente.

– Ah, Rogerão! E se o cliente fosse direto ao caixa fazer o pedido?

Nesse caso, o caixa será a API. O cliente faz o pedido e paga por ele no caixa. O caixa dá um grito “saindo um X-Tudo completo com maionese temperada!!!”. A cozinha escuta nem que não queira e prepara o pedido. Depois de pronto, o cliente busca seu X-Tudão e é só alegria.

Colocando em prática essa analogia, imagem um site de comparação de preços (seja de produtos, de passagens aéreas, de hotelaria, etc). Esse site de comparação não tem acesso direto às informações transacionais de cada empresa de um ramo para fazer as comparações de acordo com a pesquisa de um usuário. Em vez desse acesso direto, as empresas disponibilizam API’s que são usadas para requisição de informações. O site de comparação reúne todas essas API’s para serem usadas para requisição e recuperação de informações a fim de trazer um resultado para o usuário de acordo com seus critérios de pesquisa.

Para mais entendimento dessa analogia, usem a referência [5].

Para finalizar, apenas duas categorias merecem o título de doutor: aqueles que possuem doutorado e os meus consagrados garçons.

Três abordagens para lançamento de API’s [2]

API Privada

API de Parceiros

API Pública

É usada apenas internamente

É compartilhada com parceiros de negócios específicos

É disponibilizada para todos

Pode oferece às empresas um maior controle

Pode fornecer fluxos de receita adicionais sem comprometer a qualidade

Pode se tornar uma fonte de inovação

Terceiros podem desenvolver aplicações que interajam com a sua API

Exemplos de API’s no mercado [1]

Pagamentos online Localização
Plataformas de comércio eletrônico Sites comparativos de preços

Pagamentos online

São API’s que permitem executar pagamentos e transferências sem:

  • Sair do site da loja; e
  • Fornecedor do serviço.

Usando as API’s das carteiras digitais, o comprador não precisa colocar os dados do cartão de crédito no site da loja. Apenas seu usuário e senha do serviço, autorizando a compra.

Exemplos:

  • PayPal;
  • Cielo;
  • PagSeguro; e
  • Moip.

Localização

Através da integração dessas API’s, é possível criar aplicativos próprios:

  • Baseados na localização da empresa; e
  • Que reagem à posição do seu usuário.

Essas API’s:

  • Permitem ainda visualizar dados sobre:
    • Topografia; e
    • Geografia;
  • Ajudam a determinar previsões de clima.

Exemplos:

  • Google Maps; e
  • Foursquare.

Plataformas de comércio eletrônico

Através da publicação da sua API, o site do varejista pode se integrar com a plataforma base: Amazon, Extra ou Mercado Livre.

As lojas conseguem assim unificar os dois sistemas de gestão. O que facilita processos como a constante atualização de preços de forma segura, pois não se precisa disponibilizar o banco de dados a terceiros.

Outra vantagem é a atualização de estoques em tempo real entre lojas diferentes. O que evita:

  • Tanto o desperdício;
  • Quanto vendas indevidas.

Exemplos:

  • Extra.com.br/Cnova;
  • Mercado livre; e
  • Amazon.

Sites comparativos de preços

Ao disponibilizar seus catálogos, através da API, o serviço de comparação de preços consegue:

  • Encontrar o produto desejado em diversas lojas; e
  • Compará-lo automaticamente.

Exemplos:

  • Buscapé;
  • Zoom; e
  • Indix.

Benefícios ou vantagens [3] [6]

Customização Otimização Integração
Segurança Monetização por acesso Redução no volume de dados
Possibilidade de auditar acessos

Customização

A API possibilita oferecer serviços e produtos, personalizados para o consumidor final. Somente com os dados do cliente que já constam na rede, as API’s são capazes de definir o perfil de consumo do usuário, aumentando a capacidade de customização da empresa.

Otimização

A maioria das API’s apresenta funcionalidades que enriquecem a gestão e ajudam a definir estratégias de ação, tais como:

  • Relatórios personalizados; ou
  • Ferramentas de gerenciamento.

Com isso, o nível da gestão interna melhora, interferindo diretamente na forma que as organizações são dirigidas e monitoradas.

Integração

As API’s:

  • Permitem o compartilhamento de informações entre as empresas;
    • Fazendo com que a interconexão de dados forneça uma visão geral do negócio
  • Oferecem o máximo de conteúdo em um ambiente digital prático e funcional;
  • Expõem diferentes tipos de informações;
    • Internas ou externas;
    • Individuais ou agrupadas;
    • Mas sempre de modo controlado e seguro.

Segurança

A maneira como as API’s proporcionam a integração proporciona uma troca de informações de forma muito segura porque elas criam uma espécie de portão na qual apenas conjunto específico de informações estará disponível.

Gateway de API é o responsável por trazer segurança e auditoria para API’s.

Monetização por acesso

A monetização de API’s podem ser feitas através da cobrança por acesso a determinado tipo de informação. Por exemplo, a Netflix possibilita a obtenção ao seu conteúdo apenas aos seus assinantes, mediante a um custo.

Redução no volume de dados

As API’s são capazes de fazer integrações de forma específica;

  • Vinculando apenas um tipo de informação;
  • Restringindo o acesso quanto a outras; e
  • Sob uma perspectiva de operação do sistema.

Isso pode significar uma otimização de performance de plataforma. A razão disso é que a restrição da manipulação de dados pode proporcionar uma melhor aproveitamento de informações. A questão é a possibilidade de não ocupar o sistema com dados desnecessários

Possibilidade de auditar acessos

Uma API pode oferecer informações sobre

  • Quem a acessou;
  • Quando a acessou;
  • De onde a acessou; ou
  • O que consultou.

Gateway de API dá a possibilidade de ter uma perspectiva detalhada quanto ao fluxo de dados operando através dele.

É uma potencialidade importante para empresas que utilizam as API’s:

  • No e-commerce; ou
  • Em sistemas que manipulam dados de elevado valor ou necessidade de sigilo;
    • Como é o caso dos dados bancários.

Com todas essas informações, vamos responder questões que citaram API. Inclusive questões do CESPE/CEBRASPE cobradas na prova da Polícia Federal de 2018. Bora!!!

Questões de concursos

[1] [UFMT 2014 UFMT – Técnico de Tecnologia da Informação] Sobre ferramentas e recursos de desenvolvimento, assinale a afirmativa INCORRETA. (Marque CERTO ou ERRADO)

[C] API – conjunto de rotinas e padrões que provê funcionalidades para o desenvolvimento de aplicativos, permitindo ao programador um maior nível de abstração.

Comentários:

API é um conjunto de [2]:

  • Definições e protocolos;
    • Usados no desenvolvimento e na integração de aplicações de software; e
  • Rotinas e padrões de programação;
    • Para acesso a:
      • Aplicações de software; ou
      • Plataforma baseada na Web.

No uso de API’s, podemos ter uma abstração através do que uma API pode oferecer a uma aplicação cliente, sem termos a preocupação de como a API traz as informações necessárias.

O que seria uma abstração então? Abstração consiste em focalizar nos aspectos essenciais inerentes a uma entidade, ignorando propriedades acidentais.

Com isso, o texto está correto.

Gabarito: CERTO.

[2] [FCC 2013 AL/RN – Técnico Legislativo – Programador] Essa API é uma especificação da W3C, independente de plataforma e linguagem, que permite que programas e scripts acessem dinamicamente e possam alterar o conteúdo, a estrutura e o estilo de um documento eletrônico. Oferece uma maneira padrão de se acessar os elementos de um documento, além de permitir que se trabalhe com cada um desses elementos separadamente, possibilitando a criação de páginas altamente dinâmicas.

A API citada no texto é a

[A] DOM

[B] WebGL

[C] XSLT

[D] WebForm

[E] WebSocket

Comentários:

Eu trouxe essa questão para exemplificar mais um tipo de API.

Neste caso, a questão trata da API DOM (Document Object Model). DOM define um padrão para acessar e manipular documentos. É uma especificação W3C, independente de plataforma e linguagem, que permite que programas e scripts acessem e atualizem dinamicamente o conteúdo, a estrutura e o estilo de um documento.

  • HTML DOM:
    • Define uma forma padrão de acessar e manipular documentos HTML;
    • Apresenta um documento HTML como uma estrutura de árvore;
  • XML DOM:
    • Define uma forma padrão para acessar e manipular documentos XML;
    • Apresenta um documento XML como uma estrutura de árvore.

Gabarito: letra A.

[3] [CESPE 2018 Polícia Federal – Papiloscopista Policial Federal] Em geral, APIs são definidas por um conjunto de requisitos que gerenciam a forma como uma aplicação pode conversar com outra aplicação. A esse respeito, julgue o item subsequente.

Uma API restringe a interface entre duas aplicações, nesse sentido, não é possível que uma API especifique uma interface entre uma aplicação e o sistema operacional, já que estão em camadas diferentes de programação.

Comentários:

Uma API, como estudamos (figura 1), define uma interface entre uma aplicação cliente e um sistema que oferece algum tipo de informação, por exemplo, um sistema operacional.

Com isso, o texto da questão está errada.

Gabarito: ERRADO.

[4] [CESPE 2018 Polícia Federal – Papiloscopista Policial Federal] Em geral, APIs são definidas por um conjunto de requisitos que gerenciam a forma como uma aplicação pode conversar com outra aplicação. A esse respeito, julgue o item subsequente.

Para utilizar uma API que trabalhe com entrada/saída de arquivos, é necessário entender as operações do sistema de arquivo ao se utilizar a função copiar um arquivo de um dispositivo para outro.

Comentários:

Para utilizar uma API que trabalhe com entrada/saída de arquivos, não é necessário entender as operações e sim entender sua a interface. As API’s criam uma abstração para as aplicações clientes que as utilizam.

Relembrando, API é uma forma de integrar sistemas [3]:

  • Que podem possuir linguagens de programação totalmente distintas;
  • De maneira:
    • Ágil; e
    • Segura;
  • Possibilitando:
    • Segurança dos dados;
    • Facilidade no intercâmbio entre informações;
      • Com diferentes linguagens de programação; e
    • Monetização de acessos.

Permite que uma solução ou serviço se comunique com outros produtos e serviços [2]:

  • Sem precisar saber como eles foram implementados;
  • Isso simplifica o desenvolvimento de aplicações;
    • Gerando economia de:
      • Tempo; e
      • Dinheiro.

Fiquem atentos: API é um assunto que pode ser colocado no tópico de Integração de Sistemas.

Gabarito: ERRADO.

[5] [CESPE 2018 Polícia Federal – Papiloscopista Policial Federal] Em geral, APIs são definidas por um conjunto de requisitos que gerenciam a forma como uma aplicação pode conversar com outra aplicação. A esse respeito, julgue o item subsequente.

Devido às características de uma API, a separação entre ela e sua implementação permite que programas escritos em uma linguagem usem bibliotecas escritas em outra linguagem.

Comentários:

O comentário da questão [4] explica direitinho esta questão.

Gabarito: CERTO.

[6] [CESPE 2018 FUB – Técnico de Tecnologia da Informação] Acerca da integração de sistemas e da implantação de uma arquitetura orientada a serviços (SOA, na sigla em inglês), julgue o item seguinte.

API (application program interface) pode ser usada para integrar sistemas, de forma que um dos lados seja consumidor de um serviço provido pelo outro lado, desde que tais serviços tenham sido implementados por meio de SOA.

Comentários:

O texto estaria totalmente correto, a não ser pelo trecho “… desde que tais serviços tenham sido implementados por meio de SOA”. Há várias formas de utilização de API’s.

Gabarito: ERRADO.

[7] [CESPE 2012 MPE/PI – Técnico Ministerial – Informática] Com relação à programação orientada a objetos (POO), julgue o item subsequente.

Em Web services, o XML é utilizado para a comunicação entre as aplicações por meio de APIs (programa de aplicação de interface).

Comentários:

Web Services são serviços que trazem uma resposta mediante uma requisição. Isso vimos neste artigo sobre o uso de API. Nos Web Services baseados em XML, um documento XML é usado por uma aplicação cliente (cliente) para requisição de informações de um serviço. Um outro documento XML é gerado como resposta do provedor de serviço, levando as informações que foram requisitadas.

Então o documento XML de requisição é o pedido do cliente e o documento XML de resposta é o prato pedido pelo cliente. E no meio há o garçom que leva o pedido à cozinha e traz o prato para o cliente. Ou seja, API, a interface, a abstração.

Gabarito: CERTO.

[8] [CESPE 2004 Prefeitura de Boa Vista/RR – Analista de Sistemas] Acerca dos recursos e tecnologias utilizados na área de informática, julgue o seguinte item.

DOM, MP3, SAX e MPEG correspondem, respectivamente, a interface de programação de aplicações que fornece um conjunto de objetos e métodos para representar documentos em HTML e XML; arquivo de som; interface de programação de aplicações para análise de XML com base em eventos; e formato de arquivo de vídeo.

Comentários:

Na questão [1], falei sobre o DOM. Como esta questão acabou citando essa API, resolvi colocar ela neste artigo.

As outras tecnologias citadas na questão são:

  • MP3: arquivo de som;
  • SAX: interface de programação de aplicações para análise de XML com base em eventos; e
  • MPEG: formato de arquivo de vídeo.

Gabarito: CERTO.

Referências

  1. Exemplos de API: conheça os tipos e as que você usa todos os dias. Disponível em: https://sensedia.com/api/exemplos-de-apis/
  2. O que é API?. Disponível em: https://www.redhat.com/pt-br/topics/api/what-are-application-programming-interfaces
  3. O que é API? Entenda de uma maneira simples. Disponível em: http://blog.vertigo.com.br/o-que-e-api-entenda-de-uma-maneira-simples/
  4. O que são APIs?. Disponível em: https://mundoapi.com.br/materias/o-que-sao-apis/
  5. Para entender o que é API: o garçom. Disponível em: https://mundoapi.com.br/materias/para-entender-o-que-e-api-o-garcom/
  6. Três Benefícios de Implantar API na Sua Empresa. Disponível em: https://blog.betalabs.com.br/tres-beneficios-de-implantar-um-software-com-api-na-sua-empresa/

Espero que gostem e desejo que se preparem conosco durante essa jornada na conquista de uma tão sonhada vaguinha em um concurso público.

Então é isso!
[]’s e até a próxima!
_________________________
Professor Rogerão Araújo

Por
10 min. de leitura