pfSense-pkg-RESTAPI

BinaryContentHandler extends ContentHandler
in package

Defines a ContentHandler for handling binary data. This is primarily used to handle file downloads.

Tags
note

In context to Models, this content handler can only encode the data as a binary file for download if the model contains both a $filename containing the name of the file to download and a $binary_data containing the binary data to download.

Table of Contents

Constants

DEFAULT_ENCODE_MIME_TYPE  = 'application/json'

Properties

$encode_help_text  : string
The help text for encoding content with this content handler.
$mime_type  : string
The MIME type associated with this content handler.

Methods

can_decode()  : bool
Checks if this ContentHandler object is capable of decoding content.
can_encode()  : bool
Checks if this ContentHandler object is capable of encoding content.
decode()  : mixed
Obtains and decodes the content from the format corresponding with this ContentHandler's MIME type.
encode()  : mixed
Encodes the provided content into the format corresponding with this ContentHandler's MIME type and sets the Content-Type and Content-Length response headers accordingly.
get_class_fqn()  : string
Obtains the fully qualified name of the called class.
get_class_shortname()  : string
Obtains the shortname of the called class.
get_classes_in_namespace()  : array<string|int, mixed>
Obtains all classes associated with this class's current namespace.
get_content()  : mixed
Obtains the content from the remote client in its unprocessed form.
get_decode_handler()  : ContentHandler
Obtains a decode-capable ContentHandler for the MIME type provided via the HTTP Content-Type header.
get_decode_mime_type()  : string
Obtains the MIME type from the HTTP Content-Type header. The Content-Type header controls which ContentHandler will be used to decode request data sent by the remote client. If no content-header was specified, the API will assume a default of application/x-www-form-urlencoded for GET and DELETE requests and a default of application/json for POST, PUT and PATCH requests.
get_encode_handler()  : ContentHandler
Obtains an encode-capable ContentHandler for the MIME type provided via the HTTP Accept header.
get_encode_mime_type()  : string
Obtains the MIME type from the HTTP Accept header or assumes the default if no Accept header is specified. The Accept header controls which ContentHandler will be used to encode API responses.
log_error()  : void
Logs an error to the syslog.
to_openapi_schema()  : array<string|int, mixed>
Converts this ContentHandler into an OpenAPI 'content' schema. This schema details which MIME types are allowed by the Accept header and also provides a reference to the schema of the Response object.
_decode()  : mixed
Defines the steps necessary to decode the given content into a PHP native format. This method is generally used to decode the remote client's request from the format indicated in the remote client's request.
_encode()  : mixed
Encodes/preps the given content as a binary file for download.

Constants

DEFAULT_ENCODE_MIME_TYPE

public mixed DEFAULT_ENCODE_MIME_TYPE = 'application/json'

Properties

$encode_help_text

The help text for encoding content with this content handler.

public string $encode_help_text = 'Downloads the response as generic binary data.'

$mime_type

The MIME type associated with this content handler.

public string $mime_type = 'application/octet-stream'

Methods

can_decode()

Checks if this ContentHandler object is capable of decoding content.

public final can_decode() : bool
Tags
throws
ReflectionException

When the _decode() method is missing entirely.

Return values
bool

Returns true if this ContentHandler can decode content, otherwise false.

can_encode()

Checks if this ContentHandler object is capable of encoding content.

public final can_encode() : bool
Tags
throws
ReflectionException

When the _encode() method is missing entirely.

Return values
bool

Returns true if this ContentHandler can encode content, otherwise false.

decode()

Obtains and decodes the content from the format corresponding with this ContentHandler's MIME type.

public final decode([mixed $content = null ]) : mixed
Parameters
$content : mixed = null

The content to be decoded in this ContentHandler's format. If no value is specified, the content will automatically be populated using the get_content() method.

Return values
mixed

The content in this ContentHandler's respective format.

encode()

Encodes the provided content into the format corresponding with this ContentHandler's MIME type and sets the Content-Type and Content-Length response headers accordingly.

public final encode(mixed $content[, Response|null $context = null ]) : mixed
Parameters
$content : mixed

The content to be encoded in this ContentHandler's format. This generally the array representation of the Response object, but can be any content that needs to be encoded.

$context : Response|null = null

The Response object that this content is being encoded for. This useful for ContentHandlers that need more context from the Response object that is being encoded.

Return values
mixed

The content in this ContentHandler's respective format.

get_class_fqn()

Obtains the fully qualified name of the called class.

public get_class_fqn() : string
Return values
string

The FQN for this object's class.

get_class_shortname()

Obtains the shortname of the called class.

public get_class_shortname() : string
Return values
string

The shortname for this object's class.

get_classes_in_namespace()

Obtains all classes associated with this class's current namespace.

public get_classes_in_namespace([bool $shortnames = false ]) : array<string|int, mixed>
Parameters
$shortnames : bool = false
Return values
array<string|int, mixed>

An array of classes currently in this object's namespace

get_content()

Obtains the content from the remote client in its unprocessed form.

public get_content() : mixed
Tags
throws
ServerError

When this method is called but not overridden by the child class.

Return values
mixed

The unprocessed content from the remote client.

get_decode_handler()

Obtains a decode-capable ContentHandler for the MIME type provided via the HTTP Content-Type header.

public static get_decode_handler() : ContentHandler
Tags
returns

ContentHandler The decode-capable ContentHandler object with the requested $mime_type.

throws
NotAcceptableError

When the ContentHandler with the requested $mime_type does not support decoding.

throws
NotAcceptableError

When no ContentHandler exists with this $mime_type.

Return values
ContentHandler

get_decode_mime_type()

Obtains the MIME type from the HTTP Content-Type header. The Content-Type header controls which ContentHandler will be used to decode request data sent by the remote client. If no content-header was specified, the API will assume a default of application/x-www-form-urlencoded for GET and DELETE requests and a default of application/json for POST, PUT and PATCH requests.

public static get_decode_mime_type() : string
Return values
string

The MIME type to be used as requested in the HTTP Content-Header header.

get_encode_handler()

Obtains an encode-capable ContentHandler for the MIME type provided via the HTTP Accept header.

public static get_encode_handler() : ContentHandler
Tags
returns

ContentHandler The encode-capable ContentHandler object with the requested $mime_type.

throws
NotAcceptableError

When the ContentHandler with the requested $mime_type does not support encoding.

throws
NotAcceptableError

When no ContentHandler exists with this $mime_type.

Return values
ContentHandler

get_encode_mime_type()

Obtains the MIME type from the HTTP Accept header or assumes the default if no Accept header is specified. The Accept header controls which ContentHandler will be used to encode API responses.

public static get_encode_mime_type() : string
Return values
string

The MIME type to be used as requested in the HTTP Accept header.

log_error()

Logs an error to the syslog.

public static log_error(string $message) : void
Parameters
$message : string

The error message to write to the syslog

to_openapi_schema()

Converts this ContentHandler into an OpenAPI 'content' schema. This schema details which MIME types are allowed by the Accept header and also provides a reference to the schema of the Response object.

public to_openapi_schema(Response $response, Endpoint $endpoint) : array<string|int, mixed>
Parameters
$response : Response

The Response object this content schema describes.

$endpoint : Endpoint

The Endpoint object this content schema is being generated for.

Tags
inheritDoc
Return values
array<string|int, mixed>

This ContentHandler as an OpenAPI 'content' schema for this MIME type in a given Response object.

_decode()

Defines the steps necessary to decode the given content into a PHP native format. This method is generally used to decode the remote client's request from the format indicated in the remote client's request.

protected _decode([mixed $content = null ]) : mixed
Parameters
$content : mixed = null

The content to be decoded in this ContentHandler's format.

Tags
note

This method must be overridden by the child class to be used in response to a client's Content-Type header

throws
MediaTypeError

When this ContentHandler does not support decoding content.

Return values
mixed

The content in this ContentHandler's respective format.

_encode()

Encodes/preps the given content as a binary file for download.

protected _encode([mixed|null $content = null ][, Response|null $context = null ]) : mixed
Parameters
$content : mixed|null = null

The content to encode.

$context : Response|null = null

The Response object that contains the content to encode.

Return values
mixed

The encoded content.


        
On this page

Search results