PHP code example of edgvi10 / integration-controller

1. Go to this page and download the library: Download edgvi10/integration-controller library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

edgvi10 / integration-controller example snippets




use EDGVI10\Controllers\IntegrationController;

// Inicialização simples
$client = new IntegrationController();

// Inicialização com configurações
$client = new IntegrationController([
    'baseURL' => 'https://api.example.com',
    'headers' => ['Accept' => 'application/json'],
    'timeout' => 30,
    'verifySSL' => true,
    'userAgent' => 'MyApp/1.0'
]);

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

// Fazer uma requisição GET
if ($client->get('/users', ['page' => 1, 'limit' => 10])) {
    $data = $client->jsonResponse();
    print_r($data);
} else {
    echo "Erro: " . $client->lastError;
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com',
    'headers' => ['Content-Type: application/json']
]);

$userData = [
    'name' => 'João Silva',
    'email' => '[email protected]',
    'age' => 30
];

if ($client->post('/users', $userData)) {
    echo "Usuário criado com sucesso!";
    echo "Status: " . $client->responseStatusCode;
} else {
    echo "Erro: " . $client->lastError;
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setAuthentication('bearer', 'seu_token_aqui');

if ($client->get('/protected-resource')) {
    $data = $client->jsonResponse();
    print_r($data);
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setAuthentication('basic', [
    'username' => 'usuario',
    'password' => 'senha'
]);

$client->get('/secure-endpoint');

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setAuthentication('api_key', [
    'header' => 'X-API-Key',
    'key' => 'sua_api_key_aqui'
]);

$client->get('/data');

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$updateData = [
    'name' => 'João Silva Atualizado',
    'email' => '[email protected]'
];

if ($client->put('/users/123', $updateData)) {
    echo "Usuário atualizado com sucesso!";
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$partialUpdate = [
    'status' => 'active'
];

$client->patch('/users/123', $partialUpdate);

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

if ($client->delete('/users/123')) {
    echo "Usuário excluído com sucesso!";
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setMethod('POST')
       ->setEndpoint('/users')
       ->setHeaders(['Content-Type: application/json'])
       ->setData(['name' => 'Maria', 'email' => '[email protected]'])
       ->send();

if ($client->responseStatusCode === 201) {
    echo "Recurso criado!";
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setMethod('POST')
       ->setEndpoint('/products')
       ->useJson(false)
       ->addHeader('Content-Type', 'multipart/form-data')
       ->addField('name', 'Produto A')
       ->addField('price', 99.90)
       ->addField('category', 'Eletrônicos')
       ->addFile('image', fopen('/path/to/image.jpg', 'r'))
       ->addFile('image2', fopen('/path/to/image2.jpg', 'r'))
       ->send();

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setMethod('GET')
       ->setEndpoint('/unstable-endpoint');

// Tenta até 5 vezes com 2 segundos de intervalo
if ($client->sendWithRetry(5, 2)) {
    echo "Requisição bem-sucedida após tentativas!";
} else {
    echo "Falhou após todas as tentativas";
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->setMethod('GET')
       ->setEndpoint('/data');

$client->sendAsync(
    function($body, $statusCode, $headers) {
        echo "Sucesso! Status: $statusCode";
        print_r(json_decode($body, true));
    },
    function($error) {
        echo "Erro: $error";
    }
);

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

$client->enableLogging = true;

$client->get('/users');

// Visualizar logs
foreach ($client->logs as $log) {
    echo "[{$log['timestamp']}] {$log['message']}\n";
    print_r($log['data']);
}

// Limpar logs
$client->clearLogs();

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

if ($client->get('/users/123')) {
    // Status code
    echo "Status: " . $client->responseStatusCode . "\n";
    
    // Body bruto
    echo "Body: " . $client->responseBody . "\n";
    
    // JSON decodificado
    $data = $client->jsonResponse();
    print_r($data);
    
    // Headers
    print_r($client->responseHeaders);
    
    // Endpoint usado
    echo "Endpoint: " . $client->responseEndpoint;
}

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

// Primeira requisição
$client->get('/users');
$users = $client->jsonResponse();

// Limpar estado antes da próxima requisição
$client->clear();

// Segunda requisição
$client->get('/products');
$products = $client->jsonResponse();

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com',
    'timeout' => 60,        // 60 segundos
    'verifySSL' => false,   // Desabilitar verificação SSL (não recomendado em produção)
    'userAgent' => 'MyBot/2.0'
]);

$client->get('/slow-endpoint');

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

// Arrays são automaticamente convertidos em strings separadas por vírgula
$client->get('/search', [
    'categories' => ['tech', 'science', 'sports'],
    'status' => ['active', 'pending']
]);
// Resultado: ?categories=tech,science,sports&status=active,pending

$client = new IntegrationController([
    'baseURL' => 'https://api.example.com',
]);

$client->setAuthentication('bearer', 'seu_token_aqui');
$client->setUseJson(true);

// Criando um item com POST enviando dados e parâmetros adicionais
$create = $client->post('/items', ['name' => 'Item 1'], ['verbose' => true]);
$createdItem = $client->jsonResponse();

$list = $client->get('/items', ['page' => 1, 'limit' => 20]);
$items = $client->jsonResponse();

$update = $client->put('/items/1', ['name' => 'Item 1 Updated'], ['notify' => 'yes']);
$updatedItem = $client->jsonResponse();

$partialUpdate = $client->patch('/items/1', ['status' => 'active']);
$patchedItem = $client->jsonResponse();

$delete = $client->delete('/items/1', ['hard_delete' => 'true']);
$deleteSuccess = $client->responseStatusCode === 204;


$client = new IntegrationController([
    'baseURL' => 'https://api.example.com'
]);

if (!$client->get('/endpoint')) {
    // Capturar erro
    echo "Erro: " . $client->lastError;
    echo "Status Code: " . $client->responseStatusCode;
}