This package is abandoned and no longer maintained. The author suggests using the astronphp/http package instead.

http request and response solutions

0.1.1 2019-12-17 11:55 UTC

This package is auto-updated.

Last update: 2022-03-30 00:17:02 UTC


README

Instalação

composer require astronphp/http

Guia do Usuário

1. Enviando Requisições

1.1 Configuração Inicial

use \Astronphp\Http\Request;

$request = new Request('www.example.com/api');

1.2 Realizando Requisições

$request->post('/users');
$request->get('/users/1');
$request->put('/users/1');
$request->patch('/users/1');
$request->delete('/users/1');

1.3 Enviando um Cabeçalho

use \Astronphp\Http\Header;

$header = new Header();
$header->add('Content-Type', 'application/json');
// ou usando constantes
// $header->add(Header::CONTENT_TYPE, Request::JSON);

$request->get('/users/1', $header);

1.4 Enviando um Corpo

use \Astronphp\Http\Header;
use \Astronphp\Http\Body;

$header = new Header();
$header->add('Content-Type', 'application/json');
// $header->add('Content-Type', 'multipart/form-data');
// $header->add('Content-Type', 'application/x-www-form-urlencoded');

// baseado no Content-Type, o objeto $body saberá como os dados devem ser enviados.
$body = new Body();
$body->set('name', 'Lorem Ipsum');
$body->set('document', '123.456.789-12');

$request->post('/users', $header, $body);

1.5 Enviando parâmetros pela url

$request->set('department', 'clothing');
$request->set('sort', 'best_seller');

// www.example.com/api/products/clothing?sort=best_seller
$request->get('/products/{department}');

Também pode ser fornecido um array associativo, o que produz o mesmo resultado que o exemplo anterior.

$request->set(['department' => 'clothing', 'sort' => 'best_seller']);
$request->get('/products/{department}');

1.6 Recebendo dados da resposta

Vamos assumir que o exemplo abaixo retorna a seguinte estrutura:

{
  "status": "success",
  "data": {
    "id": 1,
    "name": "Astron",
    "username": "astronphp",
    "password": "@astronphp"
  }
}
$response = $request->get('/users/1');

$response->getHttpCode(); // 200

$response->get('status'); // success
$response->get('data.name'); // Astron

2. Recebendo Requisições

2.1 Configuração Inicial

use \Astronphp\Http\Request;

$request = new Request();

2.2 Acessando dados

$request->query('username'); // dados recebidos via get
$request->body('username'); // dados recebidos via post
$request->files('picture');
$request->server('request_uri'); // case insensitive
$request->header('content_type'); // case insentitive

3. Enviando uma resposta

3.1 Configuração Inicial

use \Astronphp\Http\Response;

$response = new Response(['status' => 'success', 'message' => 'lorem ipsum']);

// ou como uma string json
// $response = new Response({"status":"success", "message":"lorem ipsum"});

3.2 Enviando uma resposta JSON

$response->json();

4. Navegação entre páginas

4.1 Configurando uma URI base

\Astronphp\Http\Location::setBaseUri('https://www.example.com');

4.2 Redirecionando

$location = new \Astronphp\Http\Location('/products');
$location->redirect(); // redireciona para https://www.example.com/products

4.3 Recarregando a página

$location = new \Astronphp\Http\Location();
$location->reload();