Como criar APIs de sites

9

Eu recebo muitos clientes me perguntando sobre como fazer aplicativos móveis que se conectam a seus sites para recuperar dados, permitir que os usuários façam login, etc. A maioria deles tem sites baseados em PHP, mas não tem nenhuma pista sobre como fazer APIs para interagir com eles. Eles me perguntam por que não posso me conectar diretamente a seus bancos de dados SQL. Não acho que isso seja bom em um aplicativo para dispositivos móveis. Eu preferiria que eles tivessem algum tipo de API no lugar.

No que diz respeito a sites baseados em PHP, quais são as melhores opções quando se trata de implementar uma API para essa finalidade?

    
por gonzobrains 07.07.2011 в 21:00
fonte

7 respostas

2

Você deseja procurar em serviços Web RESTful . Dê uma olhada no wiki para este aqui . A necessidade do seu cliente para, essencialmente, construir aplicações PHP que servem os dados subjacentes dos seus sites através de algum tipo de dados em conformidade com o REST, por ex. JSON, XML, SOAP , etc. Existem várias funções do PHP embutidas que permitem a conversão rápida de estruturas de dados PHP nesses formatos. Isso permitiria que você criasse aplicativos móveis que fazem solicitações HTTP para obter dados, que podem ser exibidos de maneira única.

Um exemplo para um serviço com tecnologia JSON pode ser o seguinte:

$action = $_GET['action'];
switch($action) {
  case 'get-newest-products':
     echo json_encode(getNewestProducts());
     break;
  case 'get-best-products':
     echo json_encode(getBestProducts());
     break;
  .
  .
  .
  default:
     echo json_encode(array());
     break;
}

function getNewestProducts($limit = 10) {
  $rs = mysql_query("SELECT * FROM products ORDER BY created DESC LIMIT $limit");

  $products = array();
  if (mysql_num_rows($rs) > 0) {
    while ($obj = mysql_fetch_object($rs)) {
      $products[] $obj;
    }
  }
  return $products;
}

function getBestProducts($limit = 10) {
  $rs = mysql_query("SELECT * FROM products ORDER BY likes DESC LIMIT $limit");

  $products = array();
  if (mysql_num_rows($rs) > 0) {
    while ($obj = mysql_fetch_object($rs)) {
      $products[] $obj;
    }
  }
  return $products;
}

Você poderia consultar a API da seguinte maneira (com o mod_rewrite ativado) http://myapi.mywebsite.com/get-newest-products

    
por GordyD 07.07.2011 / 21:15
fonte
4

Basta criar um subdomínio de API com um único controlador e um método para cada tarefa específica - gerar os dados no json e você está definido:

http://api.theirsite.com/get-users
http://api.theirsite.com/get-news

etc ...

    
por AlienWebguy 07.07.2011 / 21:04
fonte
1

O REST é uma maneira muito boa de estruturar recursos para recuperação. Criar uma API REST é uma maneira muito útil de definir o conjunto de operações que podem ser executadas em seus dados, mantendo uma camada relativamente fina de abstração entre a API e os dados no banco de dados. Dito isso, não é exatamente trivial, mas força a pessoa a considerar os usos e preocupações de segurança, e é muito extensível e à prova de futuro.

    
por Paul Sonier 07.07.2011 / 21:04
fonte
0

Bem, já vi muitos sites no Drupal, no Joomla ou no Wordpress. Se esse for o caso, eles têm um módulo de API que você pode ativar e, em seguida, criar um aplicativo Android usando esses.

    
por Kumar Bibek 07.07.2011 / 21:26
fonte
0

Enfrentamos esse problema com frequência suficiente para introduzirmos um servlet Java simples usando XQUERY como camada entre nosso próprio formato e o site de destino, armazenado principalmente em bancos de dados. Ele converte esses dados em JSON por meio de serviços REST. Isso poderia nos tornar flexíveis e rápidos para cada novo sistema como Joomla, Wordpress, etc ... Funciona há muitos anos para nós. Adaptar um novo sistema usualmente por dia. Você pode usar a Stylus-Enterprise para projetar os arquivos Xquery com uma interface do usuário. Se você quiser manter o PHP, o Luracast Restler faz um bom trabalho.

    
por xamiro 09.11.2011 / 18:56
fonte
0

Use o Php Slim Micro Framework para criar o REST APi. É muito fácil configurar e escrever o código.

obrigado

    
por Alpesh 02.12.2014 / 11:26
fonte
-2

Em vez de aplicativos, sugira que usem o site para celular e um wrapper apenas para abrir um navegador e redirecioná-lo para o site para celular.

    
por Jagan Chennai 07.07.2011 / 21:17
fonte