PHP code example of liquidrazor / http-contracts

1. Go to this page and download the library: Download liquidrazor/http-contracts 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/ */

    

liquidrazor / http-contracts example snippets




declare(strict_types=1);

use LiquidRazor\HttpContracts\Include\Enum\RequestBodyType;
use LiquidRazor\HttpContracts\Lib\Request\HeaderBag;
use LiquidRazor\HttpContracts\Lib\Request\HttpRequest;
use LiquidRazor\HttpContracts\Lib\Request\RequestBody;
use LiquidRazor\HttpContracts\Lib\Request\Uri;
use LiquidRazor\HttpContracts\Lib\Response\HttpResponse;

$request = new HttpRequest(
    method: 'POST',
    uri: new Uri(
        scheme: 'https',
        host: 'example.com',
        path: '/contracts',
        query: 'page=1',
    ),
    path: '/contracts',
    headers: new HeaderBag(['Content-Type' => 'application/json']),
    body: '{"name":"LiquidRazor"}',
    requestBody: new RequestBody(
        type: RequestBodyType::JSON_ASSOCIATIVE,
        raw: '{"name":"LiquidRazor"}',
        parameters: ['name' => 'LiquidRazor'],
    ),
    protocolVersion: '1.1',
);

$response = new HttpResponse(
    statusCode: 201,
    reasonPhrase: 'Created',
    body: '{"ok":true}',
    protocolVersion: '1.1',
);



declare(strict_types=1);

use LiquidRazor\HttpContracts\Include\Enum\RequestBodyType;
use LiquidRazor\HttpContracts\Lib\Request\RequestBody;

$body = new RequestBody(
    type: RequestBodyType::FORM_FIELDS,
    raw: 'name=LiquidRazor',
    parameters: ['name' => 'LiquidRazor'],
);

$body->type();       // RequestBodyType::FORM_FIELDS
$body->raw();        // 'name=LiquidRazor'
$body->has('name');  // true
$body->get('name');  // 'LiquidRazor'
$body->all();        // ['name' => 'LiquidRazor']



declare(strict_types=1);

use LiquidRazor\HttpContracts\Lib\Request\HttpRequest;
use LiquidRazor\HttpContracts\Lib\Response\HttpResponse;
use LiquidRazor\HttpContracts\Lib\Transport\HttpTransportInput;
use LiquidRazor\HttpContracts\Lib\Transport\HttpTransportOutput;
use LiquidRazor\TransportContracts\Enum\TransportStatus;

$input = new HttpTransportInput(new HttpRequest(), operationName: 'contracts.index');
$output = new HttpTransportOutput(new HttpResponse(), TransportStatus::Success);

$input->transportName();   // 'http'
$output->transportName();  // 'http'
$output->status();         // TransportStatus::Success



declare(strict_types=1);

use LiquidRazor\HttpContracts\Lib\Request\HttpRequest;
use LiquidRazor\HttpContracts\Lib\Response\HttpResponse;
use LiquidRazor\HttpContracts\Lib\Transport\HttpExchange;

$exchange = new HttpExchange(new HttpRequest());
$response = new HttpResponse(statusCode: 200, reasonPhrase: 'OK');

$next = $exchange->withResponse($response);