Documentation

YouTubeApiHandler
in package
implements ApiRoutableInterface uses ApiRoutableTrait

Handler for YouTube API proxy endpoints.

Keeps the YouTube API key server-side to prevent exposure to clients.

Tags
since
3.0.0

Table of Contents

Interfaces

ApiRoutableInterface
Interface for API handlers that participate in route dispatch.

Constants

YOUTUBE_API_BASE  = 'https://www.googleapis.com/youtube/v3'
YouTube Data API v3 base URL.

Methods

formatGetVideoInfo()  : array{success: bool, data?: array, error?: string}
Fetch video information from YouTube.
formatIsConfigured()  : array{configured: bool}
Check if YouTube API is configured.
routeDelete()  : JsonResponse
routeGet()  : JsonResponse
Route GET requests for the YouTube API handler.
routePost()  : JsonResponse
routePut()  : JsonResponse
frag()  : string
Extract a fragment from the fragments array.
extractHttpCode()  : int
Extract HTTP status code from response headers.
getApiKey()  : string|null
Get the YouTube API key from environment.

Constants

YOUTUBE_API_BASE

YouTube Data API v3 base URL.

private mixed YOUTUBE_API_BASE = 'https://www.googleapis.com/youtube/v3'

Methods

formatGetVideoInfo()

Fetch video information from YouTube.

public formatGetVideoInfo(string $videoId) : array{success: bool, data?: array, error?: string}
Parameters
$videoId : string

The YouTube video ID

Return values
array{success: bool, data?: array, error?: string}

formatIsConfigured()

Check if YouTube API is configured.

public formatIsConfigured() : array{configured: bool}
Return values
array{configured: bool}

routeDelete()

public routeDelete(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

routeGet()

Route GET requests for the YouTube API handler.

public routeGet(array<int, string> $fragments, array<string, mixed> $params) : JsonResponse
Parameters
$fragments : array<int, string>

URL path fragments

$params : array<string, mixed>

Query parameters

Return values
JsonResponse

routePost()

public routePost(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

routePut()

public routePut(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
$fragments : array<string|int, mixed>
$params : array<string|int, mixed>
Return values
JsonResponse

frag()

Extract a fragment from the fragments array.

protected frag(array<int, string> $fragments, int $index) : string
Parameters
$fragments : array<int, string>

The URL path fragments

$index : int

The index to extract

Return values
string

The fragment at the index, or empty string if not present

extractHttpCode()

Extract HTTP status code from response headers.

private extractHttpCode(array<string|int, string> $headers) : int
Parameters
$headers : array<string|int, string>

The response headers

Return values
int

The HTTP status code

getApiKey()

Get the YouTube API key from environment.

private getApiKey() : string|null
Return values
string|null

The API key or null if not configured


        
On this page

Search results