Coder Social home page Coder Social logo

requestful's Introduction

Latest Stable Version Latest Unstable Version Build Status Total Downloads License composer.lock available

Requestful: A simple PSR compatible HTTP client library

The goal of this library is to provide a short, simple and easy to understand alternative to Guzzle.

  • Uses the latest PSR standards and recommendations
  • Supports both synchronous and asynchronous HTTP requests
  • A+ Promises with a Guzzle compatible interface
  • Modern PHP 7 support
  • Hard ext-curl requirement

Installation

composer require kwhat/requestful

Usage

You will need a PSR-17 implantation to use this library. Personally I enjoy working with nyholm/psr7, but any library that provides psr/http-factory will be sufficient.

$factory = new Nyholm\Psr7\Factory\Psr17Factory();
$client = new Requestful\Http\Client($factory);
$request = $factory->createRequest(
    "GET", 
    "https://samples.openweathermap.org/data/2.5/weather?q=Los%20Angeles"
);

// Send a synchronous request
$response = $client->sendRequest($request);

var_dump(
    $response->getStatusCode(), // int(200)
    $response->getHeaderLine("content-type"), // string(30) "application/json; charset=utf8"
    $response->getBody() // string(459) "{"coord": {...}, "weather": {...}, ...}"
);

// Send an asynchronous request
$promise = $client->sendRequestAsync($request)
    ->then(function (Psr\Http\Message\ResponseInterface $response): string {
        return "Success: {$response->getStatusCode()}";
    });

var_dump($promise->wait()); // string(12) "Success: 200"

requestful's People

Contributors

kwhat avatar stof avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

omegaalfa

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.