loader

Rest-API

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

  1. Acesse a administração de sua loja, e vá no menu Configurações → Gerenciar  Usuários → API.
  2. 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:
				
					<?php
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'key: <?php
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'key: Itp8RoLZP4vYSuAKldNQFTLePeCwltJiFnEqbZXmGJGbKstGMvFAgQCg1orzdzcHzHmzRLKkwoAVDbzofb6feGtjs'; // // 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 ); // 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:
				
					<?php
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'key: Itp8RoLZP4vYSuAKldNQFTLePeCwltJiFnEqbZXmGJGbKstGMvFAgQCg1orzdzcHzHmzRLKkwoAVDbzofb6feGtjs'; // // Substitua o valor da chave pela chave da API (somente números e letras)

$data = array('name' => '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.