Quickly and easily access any RESTful or RESTful-like API.
If you are looking for the SendGrid API client library, please see this repo.
All updates to this library is documented in our CHANGELOG.
- PHP version 5.6 or higher
Add php-http-client to your composer.json
file. If you are not using Composer, you should be. It's an excellent way to manage dependencies in your PHP application.
{
"require": {
"sendgrid/php-http-client": "~3.9.6"
}
}
Then at the top of your PHP script require the autoloader:
require __DIR__ . '/vendor/autoload.php';
Then from the command line:
composer install
You should create directory lib
in directory of your application and clone to lib
repositories php-http-client and sendgrid-php:
$ cd /path/to/your/app
$ mkdir lib
$ cd lib
$ git clone https://github.com/sendgrid/php-http-client.git
In the next step you should create loader.php
:
$ cd /path/to/your/app
$ touch loader.php
And add to loader.php
code below:
<?php
require_once __DIR__ . '/lib/php-http-client/lib/Client.php';
require_once __DIR__ . '/lib/php-http-client/lib/Response.php';
After it you can use php-http-client
library in your project:
<?php
include __DIR__ . '/loader.php';
$client = new SendGrid\Client();
Here is a quick example:
GET /your/api/{param}/call
// include __DIR__ . '/loader.php';
require 'vendor/autoload.php';
$apiKey = YOUR_SENDGRID_API_KEY;
$authHeaders = [
'Authorization: Bearer ' . $apiKey
];
$client = new SendGrid\Client('https://api.sendgrid.com', $authHeaders);
$param = 'foo';
$response = $client->your()->api()->_($param)->call()->get();
var_dump(
$response->statusCode(),
$response->headers(),
$response->body()
);
POST /your/api/{param}/call
with headers, query parameters and a request body with versioning.
// include __DIR__ . '/loader.php';
require 'vendor/autoload.php';
$apiKey = YOUR_SENDGRID_API_KEY;
$authHeaders = [
'Authorization: Bearer ' . $apiKey
];
$client = new SendGrid\Client('https://api.sendgrid.com', $authHeaders);
$queryParams = [
'hello' => 0, 'world' => 1
];
$requestHeaders = [
'X-Test' => 'test'
];
$data = [
'some' => 1, 'awesome' => 2, 'data' => 3
];
$param = 'bar';
$response = $client->your()->api()->_($param)->call()->post($data, $queryParams, $requestHeaders);
var_dump(
$response->statusCode(),
$response->headers(),
$response->body()
);
You can do the following to create a .env file:
cp .env_example .env
Then, just add your API Key into your .env file.
If you are interested in the future direction of this project, please take a look at our milestones. We would love to hear your feedback.
We encourage contribution to our libraries, please see our CONTRIBUTING guide for details.
Quick links:
- Feature Request
- Bug Reports
- Sign the CLA to Create a Pull Request
- Improvements to the Codebase
- Review Pull Requests
We were inspired by the work done on birdy and universalclient.
php-http-client is guided and supported by the SendGrid Developer Experience Team.
php-http-client is maintained and funded by SendGrid, Inc. The names and logos for php-http-client are trademarks of SendGrid, Inc.