ApiResponse
class ApiResponse extends Response implements Arrayable
Traits
Properties
| static protected array | $macros | The registered string macros. |
from Macroable |
| protected mixed | $decoded | The decoded JSON response. |
from Response |
| protected bool | $decodedJson | Indicates if the JSON response has been decoded. |
from Response |
| protected JSON_THROW_ON_ERROR> | $decodingFlags | The flags that were used when decoding the JSON response. |
from Response |
| protected Closure|null | $decodeUsing | The custom decode callback. |
from Response |
| CookieJar|null | $cookies | The request cookies. |
from Response |
| TransferStats|null | $transferStats | The transfer stats for the request. |
from Response |
| protected false|int|null | $truncateExceptionsAt | The length at which request exceptions will be truncated. |
from Response |
| static JSON_THROW_ON_ERROR> | $defaultJsonDecodingFlags | The flags passed to |
from Response |
| protected array<string, mixed> | $context | from HasContext |
Methods
Determine if the response code was 202 "Accepted" response.
Determine if the response code was the given status code and the body has no content.
Determine if the response code was a 301 "Moved Permanently".
Determine if the response code was a 304 "Not Modified" response.
Determine if the response was a 400 "Bad Request" response.
Determine if the response was a 401 "Unauthorized" response.
Determine if the response was a 402 "Payment Required" response.
Determine if the response was a 403 "Forbidden" response.
Determine if the response was a 408 "Request Timeout" response.
Determine if the response was a 422 "Unprocessable Content" response.
Determine if the response was a 422 "Unprocessable Content" response.
Determine if the response was a 429 "Too Many Requests" response.
Call the given Closure with this instance then return the instance.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Decode non-empty JSON lines from the current response body position.
Get the decoded JSON body of the response as an array or scalar value.
Get the decoded JSON body of the response as an object.
Decode the given response body.
Get the decoded JSON body of the response as a collection.
Get the decoded JSON body of the response as a fluent object.
Execute the given callback if there was a server or client error.
Create an exception if a server or client error occurred.
Create a new request exception for the response.
Throw an exception if a server or client error occurred.
Throw an exception if a server or client error occurred and the given condition evaluates to true.
Throw an exception if a server or client error occurred and the given condition evaluates to false.
Throw an exception if the response status code matches the given code.
Throw an exception unless the response status code matches the given code.
Throw an exception if the response status code is a 4xx level code.
Throw an exception if the response status code is a 5xx level code.
Indicate that request exceptions should be truncated to the given length.
Indicate that request exceptions should not be truncated.
Dump the content from the response and end the script.
Determine if the given offset exists.
Get the value for a given offset.
Set the API request/response context.
Get the API request/response context.
Set the response status.
Set the response protocol version.
Determine whether the response has a header.
Set a response header.
Add a value to a response header.
Remove a response header.
Set the response body.
Transform the response into an array.
Determine whether the body is empty or contains JSON null.
Details
in
DeterminesStatusCode at line 12
bool
ok()
Determine if the response code was 200 "OK" response.
in
DeterminesStatusCode at line 20
bool
created()
Determine if the response code was 201 "Created" response.
in
DeterminesStatusCode at line 28
bool
accepted()
Determine if the response code was 202 "Accepted" response.
in
DeterminesStatusCode at line 36
bool
noContent(int $status = 204)
Determine if the response code was the given status code and the body has no content.
in
DeterminesStatusCode at line 44
bool
movedPermanently()
Determine if the response code was a 301 "Moved Permanently".
in
DeterminesStatusCode at line 52
bool
found()
Determine if the response code was a 302 "Found" response.
in
DeterminesStatusCode at line 60
bool
notModified()
Determine if the response code was a 304 "Not Modified" response.
in
DeterminesStatusCode at line 68
bool
badRequest()
Determine if the response was a 400 "Bad Request" response.
in
DeterminesStatusCode at line 76
bool
unauthorized()
Determine if the response was a 401 "Unauthorized" response.
in
DeterminesStatusCode at line 84
bool
paymentRequired()
Determine if the response was a 402 "Payment Required" response.
in
DeterminesStatusCode at line 92
bool
forbidden()
Determine if the response was a 403 "Forbidden" response.
in
DeterminesStatusCode at line 100
bool
notFound()
Determine if the response was a 404 "Not Found" response.
in
DeterminesStatusCode at line 108
bool
requestTimeout()
Determine if the response was a 408 "Request Timeout" response.
in
DeterminesStatusCode at line 116
bool
conflict()
Determine if the response was a 409 "Conflict" response.
in
DeterminesStatusCode at line 124
bool
unprocessableContent()
Determine if the response was a 422 "Unprocessable Content" response.
in
DeterminesStatusCode at line 132
bool
unprocessableEntity()
Determine if the response was a 422 "Unprocessable Content" response.
in
DeterminesStatusCode at line 140
bool
tooManyRequests()
Determine if the response was a 429 "Too Many Requests" response.
in
Tappable at line 17
mixed
tap(callable|null $callback = null)
Call the given Closure with this instance then return the instance.
in
Macroable at line 28
static void
macro(string $name, callable|object $macro)
Register a custom macro.
Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.
in
Macroable at line 41
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.
in
Macroable at line 57
static bool
hasMacro(string $name)
Check if macro is registered.
in
Macroable at line 68
static void
flushMacros()
Flush the existing macros.
Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.
in
Macroable at line 78
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
in
Macroable at line 103
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
in
Response at line 84
__construct(ResponseInterface $response)
Create a new response instance.
in
Response at line 91
string
body()
Get the body of the response.
in
Response at line 101
Generator
lines()
Read lines from the current response body position without rewinding.
in
Response at line 135
Generator
jsonLines(int|null $flags = null)
Decode non-empty JSON lines from the current response body position.
in
Response at line 151
mixed
json(string|null $key = null, mixed $default = null, int|null $flags = null)
Get the decoded JSON body of the response as an array or scalar value.
in
Response at line 185
mixed
object(int|null $flags = null)
Get the decoded JSON body of the response as an object.
Example: If the response body is: [ {"id": 1, "name": "John"}, {"id": 2, "name": "Jane"} ]
This method will return an array of objects. Scalar JSON values remain their decoded scalar type.
in
Response at line 201
Response
decodeUsing(Closure|null $callback)
Set a custom decode callback.
The callback will be invoked with the following parameters:
- string $body: The raw response body.
- bool $asObject: Whether JSON objects should be decoded as objects.
in
Response at line 216
protected mixed
decode(string $body, bool $asObject = false, int $flags = 0)
Decode the given response body.
in
Response at line 230
Collection
collect(string|null $key = null, int|null $flags = null)
Get the decoded JSON body of the response as a collection.
in
Response at line 240
Fluent
fluent(string|null $key = null, int|null $flags = null)
Get the decoded JSON body of the response as a fluent object.
in
Response at line 252
mixed
resource()
Get the body of the response as a PHP resource.
in
Response at line 260
string
header(string $header)
Get a header from the response.
in
Response at line 268
array
headers()
Get the headers from the response.
in
Response at line 276
int
status()
Get the status code of the response.
in
Response at line 284
string
reason()
Get the reason phrase of the response.
in
Response at line 292
UriInterface|null
effectiveUri()
Get the effective URI of the response.
in
Response at line 300
bool
successful()
Determine if the request was successful.
in
Response at line 308
bool
redirect()
Determine if the response was a redirect.
in
Response at line 316
bool
failed()
Determine if the response indicates a client or server error occurred.
in
Response at line 324
bool
clientError()
Determine if the response indicates a client error occurred.
in
Response at line 332
bool
serverError()
Determine if the response indicates a server error occurred.
in
Response at line 340
Response
onError(callable $callback)
Execute the given callback if there was a server or client error.
in
Response at line 352
CookieJar|null
cookies()
Get the response cookies.
in
Response at line 360
array
handlerStats()
Get the handler stats of the response.
in
Response at line 378
ResponseInterface
toPsrResponse()
Get the underlying PSR response for the response.
in
Response at line 386
RequestException|null
toException()
Create an exception if a server or client error occurred.
in
Response at line 398
protected RequestException
newRequestException()
Create a new request exception for the response.
in
Response at line 410
Response
throw(callable|null $callback = null)
Throw an exception if a server or client error occurred.
in
Response at line 430
Response
throwIf(bool|Closure $condition, callable|null $callback = null)
Throw an exception if a server or client error occurred and the given condition evaluates to true.
in
Response at line 442
Response
throwUnless(bool|Closure $condition, callable|null $callback = null)
Throw an exception if a server or client error occurred and the given condition evaluates to false.
in
Response at line 452
Response
throwIfStatus(int|callable $statusCode)
Throw an exception if the response status code matches the given code.
in
Response at line 467
Response
throwUnlessStatus(int|callable $statusCode)
Throw an exception unless the response status code matches the given code.
in
Response at line 481
Response
throwIfClientError()
Throw an exception if the response status code is a 4xx level code.
in
Response at line 491
Response
throwIfServerError()
Throw an exception if the response status code is a 5xx level code.
in
Response at line 499
Response
truncateExceptionsAt(int $length)
Indicate that request exceptions should be truncated to the given length.
in
Response at line 509
Response
dontTruncateExceptions()
Indicate that request exceptions should not be truncated.
in
Response at line 543
never
dd(string|null $key = null)
Dump the content from the response and end the script.
in
Response at line 563
never
ddHeaders()
Dump the headers from the response and end the script.
at line 163
bool
offsetExists(string $offset)
Determine if the given offset exists.
at line 173
mixed
offsetGet(string $offset)
Get the value for a given offset.
in
Response at line 597
void
offsetSet(string $offset, mixed $value)
Set the value at the given offset.
in
Response at line 609
void
offsetUnset(string $offset)
Unset the value at the given offset.
in
Response at line 617
static void
flushState()
Flush all static state.
in
Response at line 626
string
__toString()
Get the body of the response.
in
HasContext at line 19
HasContext
withContext(array|string $key, mixed $value = null)
Set the API request/response context.
in
HasContext at line 35
mixed
context(string|null $key = null, mixed $default = null)
Get the API request/response context.
at line 24
static ApiResponse
createFrom(Response $response)
Create an API response from an HTTP client response.
at line 41
ApiResponse
withStatus(int $code, string $reasonPhrase = '')
Set the response status.
at line 52
ApiResponse
withProtocolVersion(string $version)
Set the response protocol version.
at line 63
bool
hasHeader(string $name)
Determine whether the response has a header.
at line 72
ApiResponse
withHeader(string $name, mixed $value)
Set a response header.
at line 83
ApiResponse
withAddedHeader(string $name, mixed $value)
Add a value to a response header.
at line 94
ApiResponse
withoutHeader(string $name)
Remove a response header.
at line 105
ApiResponse
withBody(StreamInterface $body)
Set the response body.
at line 123
array
toArray()
Transform the response into an array.
at line 141
protected bool
hasEmptyOrNullJsonBody()
Determine whether the body is empty or contains JSON null.