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
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
JsonResponserouteGet()
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
JsonResponseroutePost()
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
JsonResponseroutePut()
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
JsonResponsefrag()
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