Git Product home page Git Product logo

proxy's Introduction

middlewares/proxy

Latest Version on Packagist Software License Testing Total Downloads

Middleware to create a http proxy using Guzzle.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/proxy.

composer require middlewares/proxy

Example

$target = new Uri('http://api.example.com');

$dispatcher = new Dispatcher([
	new Middlewares\Proxy($target)
]);

$response = $dispatcher->dispatch(new ServerRequest());

Usage

You need a Psr\Http\Message\UriInterface with the target of the proxy.

use Middlewares\Utils\Dispatcher;
use Middlewares\Utils\Factory;

$target = Factory::createUri('http://api.example.com');

Dispatcher::run([
	new Middlewares\Proxy($target)
]);

client

Instance of the client used to execute the requests. If it's not provided, an instance of GuzzleHttp\Client is created automatically.

$target = Factory::createUri('http://api.example.com');
$client = new Client();

$proxy = (new Middlewares\Proxy($target))->client($client);

options

Options passed to the guzzle client. See the guzzle documentation for more information


Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.

proxy's People

Contributors

lindyhopchris avatar oscarotero avatar reisraff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

proxy's Issues

Fatal error: Call to a member function withBody on null

Hi! Thanks for the package.

I think there's a problem with how the proxy handles an exception scenario. These lines:
https://github.com/middlewares/proxy/blob/master/src/Proxy.php#L85-L88

If a RequestException is thrown, it is caught and the response is set using getResponse(). The response then has the withBody method called on it.

According to the RequestException however, getResponse can return null. I'd suggest re-throwing the request exception if it does not have a response on it, but you might want this handled differently?

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.