HttpClient
in package
implements
HttpClientInterface
HTTP client for Canvas LMS API communication.
Handles all HTTP requests to the Canvas API including authentication via Bearer tokens, response pagination, error handling, and middleware support. Implements the HttpClientInterface to provide a consistent API for making requests to Canvas LMS endpoints.
Table of Contents
Interfaces
Properties
- $client : ClientInterface
- $handlerStack : HandlerStack
- $logger : LoggerInterface
- $middleware : array<string, MiddlewareInterface>
Methods
- __construct() : mixed
- addMiddleware() : void
- Add middleware to the stack
- delete() : ResponseInterface
- delete request
- get() : ResponseInterface
- Get request
- getLogger() : LoggerInterface
- Get the logger instance
- getMiddleware() : array<string, MiddlewareInterface>
- Get registered middleware
- getPaginated() : PaginatedResponse
- Get request with pagination support
- patch() : ResponseInterface
- Patch request
- post() : ResponseInterface
- Post request
- put() : ResponseInterface
- Put request
- rawRequest() : ResponseInterface
- Make a raw request to any Canvas URL
- removeMiddleware() : void
- Remove middleware from the stack
- request() : ResponseInterface
- Make an HTTP request
- requestPaginated() : PaginatedResponse
- Make an HTTP request with pagination support
- getDefaultMiddleware() : array<string|int, MiddlewareInterface>
- Get default middleware stack
- getValidOAuthToken() : string|null
- Get a valid OAuth token, refreshing if necessary.
- prepareDefaultOptions() : array<string|int, mixed>
- prepareRawRequestOptions() : array<string|int, mixed>
- Prepare options for raw requests
- validateCanvasUrl() : void
- Validate that a URL points to the configured Canvas domain
Properties
$client
private
ClientInterface
$client
$handlerStack
private
HandlerStack
$handlerStack
$logger
private
LoggerInterface
$logger
$middleware
private
array<string, MiddlewareInterface>
$middleware
= []
Methods
__construct()
public
__construct([ClientInterface|null $client = null ][, LoggerInterface|null $logger = null ][, array<string|int, MiddlewareInterface> $middleware = [] ]) : mixed
Parameters
- $client : ClientInterface|null = null
- $logger : LoggerInterface|null = null
- $middleware : array<string|int, MiddlewareInterface> = []
addMiddleware()
Add middleware to the stack
public
addMiddleware(MiddlewareInterface $middleware) : void
Parameters
- $middleware : MiddlewareInterface
delete()
delete request
public
delete(string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfaceget()
Get request
public
get(string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfacegetLogger()
Get the logger instance
public
getLogger() : LoggerInterface
Return values
LoggerInterfacegetMiddleware()
Get registered middleware
public
getMiddleware() : array<string, MiddlewareInterface>
Return values
array<string, MiddlewareInterface>getPaginated()
Get request with pagination support
public
getPaginated(string $url[, array<string|int, mixed> $options = [] ]) : PaginatedResponse
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
PaginatedResponsepatch()
Patch request
public
patch(string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfacepost()
Post request
public
post(string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfaceput()
Put request
public
put(string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfacerawRequest()
Make a raw request to any Canvas URL
public
rawRequest(string $url[, string $method = 'GET' ][, array<string|int, mixed> $options = [] ]) : ResponseInterface
This method allows direct API calls to arbitrary Canvas URLs, useful for:
- Following pagination URLs returned by Canvas
- Calling custom or undocumented endpoints
- Handling webhook callbacks with URLs
- Following URLs provided in Canvas API responses
- Accessing beta/experimental endpoints
Parameters
- $url : string
-
Full URL or relative path
- $method : string = 'GET'
-
HTTP method (GET, POST, PUT, DELETE, PATCH, etc.)
- $options : array<string|int, mixed> = []
-
Guzzle request options
Tags
Return values
ResponseInterfaceremoveMiddleware()
Remove middleware from the stack
public
removeMiddleware(string $name) : void
Parameters
- $name : string
request()
Make an HTTP request
public
request(string $method, string $url[, array<string|int, mixed> $options = [] ]) : ResponseInterface
Parameters
- $method : string
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
ResponseInterfacerequestPaginated()
Make an HTTP request with pagination support
public
requestPaginated(string $method, string $url[, array<string|int, mixed> $options = [] ]) : PaginatedResponse
Parameters
- $method : string
- $url : string
- $options : array<string|int, mixed> = []
Tags
Return values
PaginatedResponsegetDefaultMiddleware()
Get default middleware stack
private
getDefaultMiddleware() : array<string|int, MiddlewareInterface>
Return values
array<string|int, MiddlewareInterface>getValidOAuthToken()
Get a valid OAuth token, refreshing if necessary.
private
getValidOAuthToken() : string|null
Return values
string|null —The valid OAuth token or null if not available
prepareDefaultOptions()
private
prepareDefaultOptions(string &$url, array<string|int, mixed> $options) : array<string|int, mixed>
Parameters
- $url : string
- $options : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>prepareRawRequestOptions()
Prepare options for raw requests
private
prepareRawRequestOptions(string &$url, array<string|int, mixed> $options) : array<string|int, mixed>
Parameters
- $url : string
-
The URL to process (passed by reference, may be modified)
- $options : array<string|int, mixed>
-
The request options
Tags
Return values
array<string|int, mixed>validateCanvasUrl()
Validate that a URL points to the configured Canvas domain
private
validateCanvasUrl(string $url) : void
Parameters
- $url : string
-
The URL to validate