使用 Saloon 在 Laravel 和 PHP 项目中编写 API 集成
发布时间:作者: Paul Redmond
Saloon 是一个 Laravel/PHP 包,允许您使用优美且标准化的语法编写 API 集成。该包的核心是请求对象,它定义了如何从 API 获取特定请求。例如,要获取 Laravel Forge 服务器,您可能需要定义一个 GetForgeServerRequest
类
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();
以下是请求类可能的样子
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 ){}}
您还可以通过在请求类上定义的 defaultHeaders()
方法定义请求的默认标题,该方法与基本连接器标题合并。
该包为您提供了一个面向对象、流畅的系统来使用,它提供了约定以更好地组织类以围绕与外部 API 的交互。Saloon 通过 composer 与 Laravel 和任何 PHP 项目(PHP 8+)一起使用,提供以下功能
- 简单的语法,标准化您与 API 交互的方式
- 您无需担心 Guzzle/Http Facade/cURL
- 在一个地方组织所有 API 集成
- 使用插件轻松添加自己的功能
- 强大的拦截器逻辑来自定义响应
- 支持 Guzzle 处理程序,以便进行无限自定义
- 模拟用于测试的请求(即将推出)
- 框架无关
您可以在 GitHub 上详细了解此包,获取完整的安装说明并查看 源代码。