Saloon is a Laravel/PHP package that allows you to write your API integrations in a beautiful, standardized syntax. At the heart of this package is request objects, which define how to get specific requests from an API. For example, to get a Laravel Forge server, you might define a GetForgeServerRequest
class:
use App\Http\Saloon\Requests\GetForgeServerRequest; $request = new GetForgeServerRequest(serverId: '123456'); $request->addHeader('Accept', 'application/json');$request->addConfig('debug', true); // This will overwrite all default headers.$request->setHeaders($array);// This will overwrite all default configration options.$request->setConfig($array); // Send the request and get the response body$response = $request->send();$data = $response->json();
And here's what the request class might look like:
use App\Http\Saloon\Connectors\ForgeConnector;use Sammyjo20\Saloon\Constants\Saloon;use Sammyjo20\Saloon\Http\SaloonRequest; class GetForgeServerRequest extends SaloonRequest{ protected ?string $method = Saloon::GET; protected ?string $connector = ForgeConnector::class; public function defineEndpoint(): string { return '/servers/' . $this->serverId; } public function __construct( public string $serverId ){}}
You can also define default headers for the request via a defaultHeaders()
method defined on a request class, which is merged with the base connector headers.
This package gives you an object-oriented, fluent system to work with, providing conventions to organize classes better around interacting with external APIs. Saloon works with both Laravel and any PHP project (PHP 8+) via composer, providing the following features:
- Simple syntax, standardizes the way you interact with APIs
- You don't have to worry about Guzzle/Http Facade/cURL
- Organize all your API integrations in one place
- Easily add on your own functionality with plugins
- Powerful interceptor logic to customize the response
- Supports Guzzle Handlers for unlimited customization
- Mocking requests for testing (Coming Soon)
- Framework agnostic
You can learn more about this package, get full installation instructions, and view the source code on GitHub.
Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.