SEP24TransactionsResponse
extends Response
in package
Base class for all Horizon API response objects
This abstract class provides common functionality for all Horizon response types, including rate limiting information and HTTP client management. Every response from the Horizon API extends this class.
Rate Limiting: Horizon enforces rate limits on API requests. This class captures rate limit headers from responses, allowing clients to monitor their usage and implement appropriate throttling strategies.
Pagination: Many Horizon endpoints return paginated results. Paginated responses include navigation links (next, prev, self) and typically contain an array of records. Use the cursor parameter with request builders to navigate through pages.
Table of Contents
Properties
- $transactions : array<string|int, SEP24Transaction>
- $httpClient : Client|null
- $rateLimitLimit : int|null
- $rateLimitRemaining : int|null
- $rateLimitReset : int|null
Methods
- fromJson() : SEP24TransactionsResponse
- Constructs a new instance of SEP24TransactionsResponse by using the given data.
- getHttpClient() : Client|null
- Gets the HTTP client used for pagination requests
- getRateLimitLimit() : int|null
- Returns X-RateLimit-Limit header from the response.
- getRateLimitRemaining() : int|null
- Returns X-RateLimit-Remaining header from the response.
- getRateLimitReset() : int|null
- Returns X-RateLimit-Reset header from the response. Seconds until a new window starts.
- getTransactions() : array<string|int, SEP24Transaction>
- setHeaders() : void
- Extracts and sets rate limiting information from HTTP response headers
- setHttpClient() : void
- Sets the HTTP client for making follow-up requests
- setTransactions() : void
- loadFromJson() : void
- Loads the needed data from a json array.
Properties
$transactions
public
array<string|int, SEP24Transaction>
$transactions
= array()
the parsed transactions.
$httpClient
protected
Client|null
$httpClient
= null
$rateLimitLimit
protected
int|null
$rateLimitLimit
= null
$rateLimitRemaining
protected
int|null
$rateLimitRemaining
= null
$rateLimitReset
protected
int|null
$rateLimitReset
= null
Methods
fromJson()
Constructs a new instance of SEP24TransactionsResponse by using the given data.
public
static fromJson(array<string|int, mixed> $json) : SEP24TransactionsResponse
Parameters
- $json : array<string|int, mixed>
-
the data to construct the object from.
Return values
SEP24TransactionsResponse —the object containing the parsed data.
getHttpClient()
Gets the HTTP client used for pagination requests
public
getHttpClient() : Client|null
Return values
Client|null —The HTTP client instance, or null if not set
getRateLimitLimit()
Returns X-RateLimit-Limit header from the response.
public
getRateLimitLimit() : int|null
This number represents the he maximum number of requests that the current client can make in one hour.
Tags
Return values
int|nullgetRateLimitRemaining()
Returns X-RateLimit-Remaining header from the response.
public
getRateLimitRemaining() : int|null
The number of remaining requests for the current window.
Tags
Return values
int|nullgetRateLimitReset()
Returns X-RateLimit-Reset header from the response. Seconds until a new window starts.
public
getRateLimitReset() : int|null
Tags
Return values
int|nullgetTransactions()
public
getTransactions() : array<string|int, SEP24Transaction>
Return values
array<string|int, SEP24Transaction> —the parsed transactions.
setHeaders()
Extracts and sets rate limiting information from HTTP response headers
public
setHeaders(array<string|int, mixed> $headers) : void
This method processes the X-Ratelimit-* headers from the HTTP response and stores them for client access.
Parameters
- $headers : array<string|int, mixed>
-
Associative array of HTTP headers from the response
setHttpClient()
Sets the HTTP client for making follow-up requests
public
setHttpClient([Client|null $httpClient = null ]) : void
Paginated responses contain links to next/previous pages. This HTTP client is used when following those links to fetch additional pages.
Parameters
- $httpClient : Client|null = null
-
The Guzzle HTTP client to use for pagination
setTransactions()
public
setTransactions(array<string|int, SEP24Transaction> $transactions) : void
Parameters
- $transactions : array<string|int, SEP24Transaction>
-
the parsed transactions.
loadFromJson()
Loads the needed data from a json array.
protected
loadFromJson(array<string|int, mixed> $json) : void
Parameters
- $json : array<string|int, mixed>
-
the data array to read from.