Sem resumo de edição
 
(19 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
  Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as 
  '''API'''
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese
 
das pesquisas que fizer.
= '''Conceito''' =
<br>
<br>


= Conceito =
*Uma API é um conjunto de padrões de programação que permite a construção de aplicativos e comunicação entre dispositivos e sistemas de forma facilitada.
Antes de tudo, deve-se ter em mente que uma interface lógica é uma "interface" que permite que haja uma comunicação entre dois sistemas. Uma API é um recurso de um sistema que permite que esse se comunique com outro sistema. É possível citar vários exemplos de api's, visto que atualmente a grande maioria dos sistemas "conversam" com outros sistemas. Por exemplo, quando um aplicativo permite que o usuário se autentique nele através do facebook, isso ocorre graças à uma api que permite que o aplicativo solicite as informações necessárias para o sistema do facebook e o facebook as envia, possibilitando o usuário autenticar-se no sistema sem necessariamente se cadastrar nele em si. Outro bom exemplo é quando o usuário está em um site de turismo ou em alguma outra aplicação que disponibiliza mapas. Esses mapas, quase sempre, são fornecidos pelo Google Maps, através de um api entre os sistemas.
<br>


Concluindo, API's são padrões feitos pelos programadores dos respectivos softwares para que outros softwares possam utilizar alguns serviços, sem precisar implantar tal funcionalidade no próprio software. É como se um software pedisse uma aplicação "emprestada" para outro software.
= '''Como funciona uma API?''' =
<br>


= Funcionamento =
*A API recebe requisições de um "cliente" e consulta um computador especial (chamado de servidor), que é responsável por organizar a chegada de requisições e buscar os recursos requisitados. Após essa etapa, o servidor retorna uma resposta. Por exemplo: Um desenvolvedor deseja adicionar uma função de localização (GPS) ao seu aplicativo. Ao invés de programar linhas de código que instruam o celular a se conectar com um satélite, ele pode simplesmente digitar um comando para a API do sistema, no caso algo como "getLocation()", solicitando a localização atual do usuário e, com isso, o sistema se encarrega de descobrir o local sozinho.
O funcionamento de uma api web é basicamente um conjunto de requisições e respostas  HTTP, que geralmente estão no formato XML ou JSON. O modelo de arquitetura mais adotado hoje é o chamado REST(Representational State Transfer).
<br>
<br>


= Protocolos =
= '''Exemplos de interações entre APIs na web''' =
Protocolo é uma convenção que possibilita e governa a comunicação entre dois sistemas. Ele pode ser implementado por hardware, software ou pelos dois.
<br>


Alguns Exemplos de protocolos são TCP/IP, DHCP, TCP, entre outros. Porém, o protocolo mais importante quando se fala em API web é o protocolo HTTP(Hypertext Transfer Protocol), pois esse é o fator mais importante para a comunicação de dados na World Wide Web(WWW).  
* A empresa Shoptime, vendedora de produtos, utiliza uma API com o serviço de KM de vantagens do Posto Ipiranga: cada vez que um usuário cadastrado no programa do Posto Ipiranga realiza uma compra na Shoptime, automaticamente são somados pontos ao programa de milhagens do Ipiranga.
<br>
* A Decolar, empresa de passagens aéreas, depende de APIs para seu funcionamento. A partir do momento que o usuário procura uma passagem no site é realizada uma busca (através de APIs) em sites das empresas aéreas parceiras da Decolar para, ao final da procura, exibir ao usuário as melhores ofertas de passagens.
* O Google Maps é um software que age em conjunto com diversos outros, sendo um dos exemplos mais comuns da utilização de API. Uma das "parcerias" existentes é com guias de restaurantes, que mostram ao usuário os melhores restaurantes presentes na sua região, obtida por meio do GPS e Google Maps.
<br>
<br>


= Vantagens =
= '''Funcionamento das APIs em sistemas operacionais''' =
As API's levam vantagem quando comparadas a outros tipos de comunicação. Por exemplo, quando comparada à web services, pode-se até mesmo considerar que todo web service é uma api, porém não é toda api que é um web service. Primeiro pois web services servem apenas para comunicação web, enquanto os api's podem ser utilizados para comunicação local e até mesmo apenas dentro de um sistema operacional. E também as web services usam apenas 3 meios de comunicação: SOAP, REST e XML-RPC, enquanto as api's podem utilizar qualquer meio.
<br>
<br>


= XML e JSON =
*As comunicações entre aplicativos e os hardwares são feitas com intermédio das APIs e são através delas que os executáveis interagem com o sistema, lendo dados do disco, exibindo caixas de mensagem e entre outras funções. O nível de acesso de aplicativos ao hardware é dividido em "Rings" e, tirando aplicações que possuem acesso direto aos componentes do computador, que se encaixam no nível Ring0 (como o Kernel dos sistemas operacionais), o resto dos aplicativos (que estão no Ring3) dependem das APIs para se comunicar com o hardware. O intermédio funciona da seguinte forma: quando o programa precisa realizar determinada ação, como por exemplo exibir uma mensagem de texto, faz uma chamada para uma função específica presente na API do Sistema Operacional. Seguindo o exemplo da mensagem de texto, a API receberia argumentos indicando o texto e o título da janela, os interpretaria e enviaria instruções relativas à exibição da mensagem ao processador.
XML(ou extensible markup language) e JSON são formatos para representar dados em uma web api, onde XML é um formato mais trabalhoso e bem estruturado e, por isso, leva vantagem em cima do JSON quando se trata de transportar grande carga. Porém, se a carga for pequena, o JSON se torna mais eficaz por ser um formato mais simples e menos.
Além disso, uma API pode fazer o intermédio de um aplicativo como, por exemplo, o relógio do sistema Windows. Desta forma, a aplicação poderia se utilizar do relógio para exibir a mesma hora em seu programa.
 
 
'''Exemplo de "código" em XML:'''
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
  <titulo>Pão simples</titulo>
  <ingredientes>
    <ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente>
    <ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
    <ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente>
    <ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente>
  </ingredientes>
  <instrucoes>
    <passo>Misture todos os ingredientes, e dissolva bem.</passo>
    <passo>Cubra com um pano e deixe por uma hora em um local morno.</passo>
    <passo>Misture novamente, coloque numa bandeja e asse num forno.</passo>
  </instrucoes>
</receita>
 
'''Exemplo de "código" em JSON:'''
 
{ "Alunos" : [
        { "nome": "João", "notas": [ 8, 9, 7 ]  },
        { "nome": "Maria", "notas": [ 8, 10, 7 ] },
        { "nome": "Pedro", "notas": [ 10, 10, 9 ] }
    ]
}
<br>
<br>


= Exemplos de código =
= '''Referências Bibliográficas''' =
 
'''Modelo de código para logar no app com o facebook(em PHP):'''
 
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])){
  // Informe o seu App ID abaixo
  $appId = '29048572934875';
  // Digite o App Secret do seu aplicativo abaixo:
  $appSecret = '123456789';
  // Url informada no campo "Site URL"
  $redirectUri = urlencode('http://fb.matheusafonso.com/');
  // Obtém o código da query string
  $code = $_GET['code'];
  // Monta a url para obter o token de acesso e assim obter os dados do usuário
  $token_url = "https://graph.facebook.com/oauth/access_token?"
  . "client_id=" . $appId . "&redirect_uri=" . $redirectUri
  . "&client_secret=" . $appSecret . "&code=" . $code;
  //pega os dados
  $response = @file_get_contents($token_url);
  if($response){
    $params = null;
    parse_str($response, $params);
    if(isset($params['access_token']) && $params['access_token']){
      $graph_url = "https://graph.facebook.com/me?access_token="
      . $params['access_token'];
      $user = json_decode(file_get_contents($graph_url));
    // nesse IF verificamos se veio os dados corretamente
      if(isset($user->email) && $user->email){
    /*
    *Apartir daqui, você já tem acesso aos dados usuario, podendo armazená-los
    *em sessão, cookie ou já pode inserir em seu banco de dados para efetuar
    *autenticação.
    *No meu caso, solicitei todos os dados abaixo e guardei em sessões.
    */
        $_SESSION['email'] = $user->email;
        $_SESSION['nome'] = $user->name;
        $_SESSION['localizacao'] = $user->location->name;
        $_SESSION['uid_facebook'] = $user->id;
        $_SESSION['user_facebook'] = $user->username;
        $_SESSION['link_facebook'] = $user->link;
      }
    }else{
      echo "Erro de conexão com Facebook";
      exit(0);
    }
  }else{
    echo "Erro de conexão com Facebook";
    exit(0);
  }
}else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])){
  echo 'Permissão não concedida';
}
?>
<br>
<br>


= Referências bibliográficas =
* Vertigo, "Entenda o que é uma API!"<http://blog.vertigo.com.br/entenda-o-que-e-uma-api>
http://canaltech.com.br/o-que-e/software/o-que-e-api/
* Birck, Fernando "Segurança do Windows: análise sobre as APIs, parte 1" <http://www.hardware.com.br/artigos/seguranca-windows-api/>
 
* Ciriaco, Douglas "O que é API?" <https://www.tecmundo.com.br/programacao/1807-o-que-e-api-.html>
http://www.tecmundo.com.br/programacao/1807-o-que-e-api-.htm
* Piloi, Ricardo "O que são APIs - Parte 2: Como uma API funciona" <http://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funciona/>
 
https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5es
 
http://www.devmedia.com.br/application-programming-interface-desenvolvendo-apis-de-software/30548
 
https://en.wikipedia.org/wiki/Application_programming_interface
 
https://pt.wikipedia.org/wiki/Protocolo_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
 
https://pt.wikipedia.org/wiki/World_Wide_Web
 
https://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol
 
http://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funciona/
 
https://fxcosta.wordpress.com/2015/05/31/diferenca-entre-api-e-web-service-de-maneira-simples/
 
http://phpsp.org.br/web-apis-xml-ou-json/
 
https://pt.wikipedia.org/wiki/XML
 
https://pt.wikipedia.org/wiki/JSON
<br>

Edição atual tal como às 20h18min de 3 de junho de 2017

API

Conceito


  • Uma API é um conjunto de padrões de programação que permite a construção de aplicativos e comunicação entre dispositivos e sistemas de forma facilitada.


Como funciona uma API?


  • A API recebe requisições de um "cliente" e consulta um computador especial (chamado de servidor), que é responsável por organizar a chegada de requisições e buscar os recursos requisitados. Após essa etapa, o servidor retorna uma resposta. Por exemplo: Um desenvolvedor deseja adicionar uma função de localização (GPS) ao seu aplicativo. Ao invés de programar linhas de código que instruam o celular a se conectar com um satélite, ele pode simplesmente digitar um comando para a API do sistema, no caso algo como "getLocation()", solicitando a localização atual do usuário e, com isso, o sistema se encarrega de descobrir o local sozinho.


Exemplos de interações entre APIs na web


  • A empresa Shoptime, vendedora de produtos, utiliza uma API com o serviço de KM de vantagens do Posto Ipiranga: cada vez que um usuário cadastrado no programa do Posto Ipiranga realiza uma compra na Shoptime, automaticamente são somados pontos ao programa de milhagens do Ipiranga.


  • A Decolar, empresa de passagens aéreas, depende de APIs para seu funcionamento. A partir do momento que o usuário procura uma passagem no site é realizada uma busca (através de APIs) em sites das empresas aéreas parceiras da Decolar para, ao final da procura, exibir ao usuário as melhores ofertas de passagens.
  • O Google Maps é um software que age em conjunto com diversos outros, sendo um dos exemplos mais comuns da utilização de API. Uma das "parcerias" existentes é com guias de restaurantes, que mostram ao usuário os melhores restaurantes presentes na sua região, obtida por meio do GPS e Google Maps.


Funcionamento das APIs em sistemas operacionais


  • As comunicações entre aplicativos e os hardwares são feitas com intermédio das APIs e são através delas que os executáveis interagem com o sistema, lendo dados do disco, exibindo caixas de mensagem e entre outras funções. O nível de acesso de aplicativos ao hardware é dividido em "Rings" e, tirando aplicações que possuem acesso direto aos componentes do computador, que se encaixam no nível Ring0 (como o Kernel dos sistemas operacionais), o resto dos aplicativos (que estão no Ring3) dependem das APIs para se comunicar com o hardware. O intermédio funciona da seguinte forma: quando o programa precisa realizar determinada ação, como por exemplo exibir uma mensagem de texto, faz uma chamada para uma função específica presente na API do Sistema Operacional. Seguindo o exemplo da mensagem de texto, a API receberia argumentos indicando o texto e o título da janela, os interpretaria e enviaria instruções relativas à exibição da mensagem ao processador.

Além disso, uma API pode fazer o intermédio de um aplicativo como, por exemplo, o relógio do sistema Windows. Desta forma, a aplicação poderia se utilizar do relógio para exibir a mesma hora em seu programa.

Referências Bibliográficas