Apresentação
API REST da ANDCommerce, que permite o acesso a todas as tabelas do banco de dados incluindo as que não são nativas da ANDCommerce.
O controle de acesso a API REST é feito através da chave da API que é cadastrada na administração da ANDCommerce.
Projetos incluídos (Related projects):
- PHP-CRUD-API V1: Script PHP que adiciona uma API REST com acesso direto ao Banco de dados (Single file PHP script that adds a REST API).
Configuração
- Acesse a administração de sua loja, e vá no menu Configurações → Gerenciar Usuários → API.
- Clique no botão “Novo“, no campo “Nome da API” coloque “API REST“, logo abaixo, clique no botão “Gerar” para criar sua “Chave da API“, no campo “Situação” (Status) selecione a opção “Habilitar“, e clique no botão “Salvar“.
Configurações extras
Restringir o acesso da API por IP:
Acesse a administração de sua loja, e vá no menu Configurações → Gerenciar Usuários → API, localize a API com o nome “API REST“, clique no botão “Editar“, clique na aba “Endereço IP“, clique no botão “Adicionar IP“, adicione o IP que você deseja que tenha acesso a API, e clique no botão “Salvar“.
Agora edite o arquivo “config_api.php“, e localize a linha:
define('RESTRICT_IP', false);
E altere para:
define('RESTRICT_IP', true);
Por último, salve as alterações no arquivo.
Gravar o log de acessos feitos através da API
Edite o arquivo “config_api.php“, e localize a linha:
define('SESSION_LOG', false);
E altere para:
define('SESSION_LOG', true);
Se estiver utilizando o API 3, localize a linha:
define('ANDCOMMERCE_V3', false);
E altere para:
define('ANDCOMMERCE_V3', true);
Salve as alterações no arquivo, sendo que você poderá visualizar os logs de acesso através da administração de sua loja, no no menu Configurações → Gerenciar Usuários → API, localize a API com o nome “API REST“, clique no botão “Editar“, e clique na aba “Sessão“.
Utilização
Acesse a URL da sua loja, incluindo no final o arquivo api.php, conforme o exemplo:
http://www.seudominio.com.br/api.php
É necessário informar a sua Chave da API em todas as URLs da API que serão acessadas, passando-a no cabeçalho da requisição com o nome key tendo como valor a sua Chave da API.
Exemplo:
key = Itp8RoLZP4vYSuAKldNQFTLePeCwltJiFnEqbZXmGJGbKstGMvFAgQCg1orzdzcHzHmzRLKkwoAVDbzofb6feGtjs
Caso contrário você receberá a mensagem de erro:
{"API Error":"Key not found!"}
Qualquer tabela do banco de dados estará acessivel pela API, independente de ser nativa ou não, para acessar os dados ou enviar dados, deve-se solicitar ou enviar requisições HTTP utilizando os verbos GET, POST, PUT ou DELETE.
As URLs são formadas seguindo o padrão:
http://dominio/api.php/nome_tabela/{id}
No exemplo abaixo, solicitamos todos os dados de produtos da tabela and_product:
GET http://www.seudominio.com.br/api.php/and_product/
Neste outro exemplo, solicitamos os dados do produto com a coluna product_id igual a 40 da tabela and_product:
GET http://www.seudominio.com.br/api.php/and_product/40
Documentação completa
Acesso a API REST da ANDCommerce
- Listando os produtos: Em PHP (PHP Script) GET:
'http://www.seudominio.com.br/api.php/and_product/', // Substitua o domínio e o nome da tabela
CURLOPT_HTTPHEADER => $headers,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
]);
$out = curl_exec($ch);
curl_close($ch);
print_r( $out ); // Result json'; // // Substitua o valor da chave pela chave da API (somente números e letras)
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'http://www.seudominio.com.br/api.php/and_product/', // Substitua o domínio e o nome da tabela
CURLOPT_HTTPHEADER => $headers,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
]);
$out = curl_exec($ch);
curl_close($ch);
print_r( $out ); // Resultado json
- Cadastrando um departamento: Em PHP (PHP Script) POST:
'Samsung', 'image' => '', 'sort_order' => '0');
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'http://www.seudominio.com.br/api.php/and_manufacturer/', // Replace domain and table name
CURLOPT_HTTPHEADER => $headers,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
]);
$out = curl_exec($ch);
curl_close($ch);
print_r( $out ); // Resultado json
"Deprecated: Automatically populating $HTTP_RAW_POST_DATA..."
Se ao utilizar a API, você receber o erro abaixo:
Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in Unknown on line 0
No arquivo de configurações do PHP, que geralmente é o “php.ini“, descomente ( apague o ; ) a linha abaixo:
;always_populate_raw_post_data = -1
E reinicie o servidor.