Wideo API
Wideo API jest głównym punktem dostępowym do pobierania treści wideo. Obsługuje potężne filtry, sortowanie i tagi.
Lista Wideo
Pobiera paginowaną listę wideo. Ten punkt końcowy jest bardzo elastyczny i akceptuje kilka parametrów zapytania do dopasowania wyników. Odpowiedź zawiera tablicę obiektów WideoSummary.
GET /wideo
Parametry Zapytania
Nazwa | Typ | Opis |
---|---|---|
ścieżka | string | Opcjonalnie. Filtrowanie wideo do określonej ścieżki kolekcji, np. root/movies . |
filtrowanie | obiekt | Opcjonalnie. Filtrowanie przez metadane. Zobacz przykłady filtrów poniżej. |
tagi | string | Opcjonalnie. Lista tagów oddzielonych przecinkami do filtrowania (np. laravel,api ). Znajduje wideo z wszystkimi określonymi tagami. |
sortowanie | string | Opcjonalnie. Sortuje wyniki. Użyj prefiksu - dla sortowania malejącego. Dopuszczalne pola: created_at , title , duration_in_seconds . Domyślnie: -created_at . |
per_page | integer | Opcjonalnie. Liczba wyników na stronę. Domyślnie: 15 , Maksimum: 100 . |
Przykłady filtracji
Parametr filtrowanie
jest najpotężniejszym elementem. Składnia to filtrowanie[field_name][operator]=wartość
.
Filtrowanie przez Ścieżkę Kolekcji
To znajduje wszystkie wideo wewnątrz folderu education/php
.
GET /api/client/v1/wideo?ścieżka=root/edukacja/php
Filtrowanie przez Jedno Pola Metadanych (Równość)
To znajduje wszystkie wideo, gdzie gatunek
to ‘Akcja’, niezależnie od wielkości liter. Używanie bezpośredniej wartości jest skrótem dla operatora eq
(równość).
GET /api/client/v1/wideo?filtrowanie[gatunek]=Akcja
Filtrowanie przez Ścieżkę i Metadane
To znajduje wszystkie ‘początkujące’ wideo, specyficznie w kolekcji fitness/yoga
.
GET /api/client/v1/wideo?ścieżka=root/fitness/yoga&filtrowanie[trudność]=początkujący
Filtrowanie przez “Większe Niż” (gt
)
To znajduje wszystkie wideo dłuższe niż 10 minut (600 sekund).
GET /api/client/v1/wideo?filtrowanie[czas_trwania_sekundy][gt]=600
Filtrowanie przez “Mniejsze lub Równie” (lte
)
To znajduje wszystkie wideo z oceną 3 lub mniejszą.
GET /api/client/v1/wideo?filtrowanie[ocena][lte]=3
Filtrowanie przez “W Liście” (in
)
To znajduje wszystkie wideo, gdzie trudność jest albo ‘początkująca’ lub ‘średnia’. Działa dla obu poli wyboru wielokrotnego i pojedynczego.
GET /api/client/v1/wideo?filtrowanie[trudność][in]=początkujący,średni
Filtrowanie przez “Nie Równa” (neq
)
To znajduje wszystkie wideo, gdzie prezentator nie jest ‘Jane Doe’.
GET /api/client/v1/wideo?filtrowanie[prezentator][neq]=Jane Doe
Przykłady Sortowania i Tagowania
Filtrowanie przez Tagi
To znajduje wszystkie wideo oznaczone oboma tagami ‘yoga’ i ‘początkujący’.
GET /api/client/v1/wideo?tagi=yoga,początkujący
Sortowanie przez Tytuł (Rosnąco)
To listuje wszystkie wideo posortowane alfabetycznie według tytułu.
GET /api/client/v1/wideo?sortowanie=title
Sortowanie przez Datę (Malejąco)
To listuje wszystkie wideo z najnowszymi pierwszymi. Jest to zachowanie domyślne i jest ekwiwalentem nieprzekazywania parametru sortowanie
.
GET /api/client/v1/wideo?sortowanie=-created_at
Pełna Odpowiedź: GET /wideo
To jest kompletny, nieprzetoczony przykład odpowiedzi paginowanej.
{
"data": [
{
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Zaawansowane API Design w Laravel",
"description": "Głęboki wgląd w budowanie wytrzymałych API.",
"czas_trwania_sekundy": 3620,
"url_miniaturki": "https://twoja-cdn.com/scieżka/do/thumb1.jpg",
"created_at": "2024-08-10T12:00:00Z",
"metadata": {
"trudność": "zaawansowana",
"prezentator": "Jane Doe"
}
},
{
"id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f",
"title": "Wprowadzenie do Jogii",
"description": "Podręcznik dla początkujących w podstawowych pozach jogi.",
"czas_trwania_sekundy": 1800,
"url_miniaturki": "https://twoja-cdn.com/scieżka/do/thumb2.jpg",
"created_at": "2024-08-09T10:00:00Z",
"metadata": {
"trudność": "początkująca",
"prezentator": "John Smith"
}
}
],
"linki": {
"pierwszy": "https://twoja-aplikacja.com/api/client/v1/wideo?page=1",
"ostatni": "https://twoja-aplikacja.com/api/client/v1/wideo?page=5",
"poprzedni": null,
"następny": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2"
},
"meta": {
"aktualna_strona": 1,
"od": 1,
"ostatnia_strona": 5,
"linki": [
{
"url": null,
"etykieta": "« Poprzedni",
"aktywny": false
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=1",
"etykieta": "1",
"aktywny": true
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2",
"etykieta": "2",
"aktywny": false
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=3",
"etykieta": "3",
"aktywny": false
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=4",
"etykieta": "4",
"aktywny": false
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=5",
"etykieta": "5",
"aktywny": false
},
{
"url": "https://twoja-aplikacja.com/api/client/v1/wideo?page=2",
"etykieta": "Następny »",
"aktywny": true
}
],
"ścieżka": "https://twoja-aplikacja.com/api/client/v1/wideo",
"na_stronę": 2,
"do": 2,
"ogółem": 10
}
}
Pobierz Jedno Wideo
Pobiera pełne, szczegółowe dane dla jednego wideo, odpowiednie do odtwarzania. Odpowiedź to pojedynczy Obiekt Wideo.
GET /wideo/{idWideo}
Parametry Szczególne
Nazwa | Typ | Opis |
---|---|---|
idWideo | uuid | Obowiązkowe. Unikalny identyfikator wideo. |
Przykład Zapytania
GET /api/client/v1/wideo/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Pełna Odpowiedź: GET /wideo/{idWideo}
{
"data": {
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"title": "Zaawansowane API Design w Laravel",
"description": "Głęboki wgląd w budowanie wytrzymałych API.",
"czas_trwania_sekundy": 3620,
"created_at": "2024-08-10T12:00:00Z",
"manifest": {
"url_hls": "https://twoja-cdn.com/scieżka/do/master.m3u8",
"url_dash": "https://twoja-cdn.com/scieżka/do/manifest.mpd"
},
"opis_tytłów": [
{
"etykieta": "Angielski",
"język": "en",
"jest_domyślnym": true,
"url": "https://twoja-cdn.com/scieżka/do/en.vtt"
},
{
"etykieta": "Hiszpański",
"język": "es",
"jest_domyślnym": false,
"url": "https://twoja-cdn.com/scieżka/do/es.vtt"
}
],
"transkrypcja": {
"typ": "vtt",
"url": "https://twoja-cdn.com/scieżka/do/transkrypcja.vtt"
},
"miniaturki": [
{ "url": "https://twoja-cdn.com/scieżka/do/thumb1.jpg" },
{ "url": "https://twoja-cdn.com/scieżka/do/thumb2.jpg" }
],
"tagi": ["laravel", "api", "php"],
"metadata": {
"trudność": "zaawansowana",
"prezentator": "Jane Doe",
"związany_kurs": "API Mastery",
"język": "en-US"
}
}
}