Vizualizări API
Vizualizările API sunt punctul de intrare principal pentru a obține conținutul video. Ele suportă capabilități puternice de filtrare, sortare și etichetare.
Lista Vizualizărilor
Retrage o listă paginată de vizualizări. Acest endpoint este foarte flexibil și acceptă mai multe parametri de întrebare pentru a rafina rezultatele. Răspunsul conține un array de obiective VideoSummary.
GET /vizualizari
Parametri de întrebare
Nume | Tip | Descriere |
---|---|---|
căutare | string | Optional. Filtrează vizualizările către o cale specifică a colecției, de exemplu, root/movies . |
filtre | obiect | Optional. Filtrează după metadata. Vezi exemplificarea filtrării mai jos pentru sintaxă. |
etichete | string | Optional. O listă separată cu etichete pentru a filtra (de exemplu, laravel,api ). Găsește vizualizările cu toate etichetele specificate. |
sortare | string | Optional. Sortează rezultatele. Utilizați un prefix - pentru ordinea descrescătoare. Câmpuri permise: created_at , titlu , durata_in_seconds . Implicit: -created_at . |
per_page | integer | Optional. Numărul de rezultate pe pagină. Implicit: 15 , Max: 100 . |
Exemplificarea filtrării
Parametrul filtre
este cea mai puternică funcționalitate. Sintaxa este filtre[field_name][operator]=value
.
Filtrează după Cale a Colecției
Aceasta găsește toate vizualizările din folderele educație/php
.
GET /api/client/v1/vizualizari?căutare=root/educație/php
Filtrează după un singur câmp de metadata (Egal)
Aceasta găsește toate vizualizările unde genul
este ‘Acțiune’, cu case-insensibilitate. Utilizarea unei valori directe este o scurtătură pentru operatorul eq
(egal).
GET /api/client/v1/vizualizari?filtre[genul]=Acțiune
Filtrează după Cale și Metadata
Aceasta găsește toate ‘vizualizările de început’ în special din colecția fitness/yoga
.
GET /api/client/v1/vizualizari?căutare=root/fitness/yoga&filtre[greutate]=începător
Filtrează după “Mai mare decât” (gt
)
Aceasta găsește toate vizualizările mai lungi de 10 minute (600 secunde).
GET /api/client/v1/vizualizari?filtre[durata_in_seconds][gt]=600
Filtrează după “Mai mic sau egal cu” (lte
)
Aceasta găsește toate vizualizările cu o notă de 3 sau mai puțin.
GET /api/client/v1/vizualizari?filtre[notă][lte]=3
Filtrează după “Într-o listă” (in
)
Aceasta găsește toate vizualizările unde dificultatea este fie începător
sau intermediar
. Funcționează pentru câmpuri selectiv și multi-select.
GET /api/client/v1/vizualizari?filtre[dificultate][in]=începător,intermediar
Filtrează după “Nu egal” (neq
)
Aceasta găsește toate vizualizările unde prezentatorul nu este ‘Jane Doe’.
GET /api/client/v1/vizualizari?filtre[prezentator][neq]=Jane Doe
Exemplificarea sortării și etichetării
Filtrează după Etichete
Aceasta găsește toate vizualizările etichetate cu ambele ‘yoga’ și ‘începător’.
GET /api/client/v1/vizualizari?etichete=yoga,începător
Sortează după Titlu (Ascendent)
Aceasta listează toate vizualizările sortate alfabetic după titlu.
GET /api/client/v1/vizualizari?sortare=titlu
Sortează după Dată (Descendent)
Aceasta listează toate vizualizările cu cele mai noi înaintea celorlalte. Acesta este comportamentul implicit și este echivalent cu furnizarea unui parametru sortare
gol.
GET /api/client/v1/vizualizari?sortare=-created_at
Răspuns complet: GET /vizualizari
Acesta este un exemplu complet, ne-truncat al unei răspunsuri paginată.
{
"data": [
{
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"titlu": "Design Avansat de API în Laravel",
"descriere": "O explorare adâncă a construirii API-urilor robuste.",
"durata_in_seconds": 3620,
"url_imaginii": "https://your-cdn.com/path/to/thumb1.jpg",
"creat_at": "2024-08-10T12:00:00Z",
"metadata": {
"dificultate": "avansat",
"prezentator": "Jane Doe"
}
},
{
"id": "9c1a9e3e-7d8c-5g9b-9f1c-8a2b0c3d9e8f",
"titlu": "Introducere în Yoga",
"descriere": "O ghidă pentru începători a pozelor de yoga.",
"durata_in_seconds": 1800,
"url_imaginii": "https://your-cdn.com/path/to/thumb2.jpg",
"creat_at": "2024-08-09T10:00:00Z",
"metadata": {
"dificultate": "începător",
"prezentator": "John Smith"
}
}
],
"legături": {
"primul": "https://your-app.com/api/client/v1/vizualizari?page=1",
"ultimul": "https://your-app.com/api/client/v1/vizualizari?page=5",
"precedent": null,
"următor": "https://your-app.com/api/client/v1/vizualizari?page=2"
},
"meta": {
"pagina_curenta": 1,
"de_la": 1,
"ultima_pagina": 5,
"legături": [
{
"url": null,
"eticheta": "« Precedent",
"activ": false
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=1",
"eticheta": "1",
"activ": true
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=2",
"eticheta": "2",
"activ": false
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=3",
"eticheta": "3",
"activ": false
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=4",
"eticheta": "4",
"activ": false
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=5",
"eticheta": "5",
"activ": false
},
{
"url": "https://your-app.com/api/client/v1/vizualizari?page=2",
"eticheta": "Următor »",
"activ": true
}
],
"căutare": "https://your-app.com/api/client/v1/vizualizari",
"per_page": 2,
"până_la": 2,
"total": 10
}
}
Obține o singură vizualizare
Retrage datele detaliate complete pentru o singură vizualizare, potrivite pentru un jucător. Răspunsul este un obiect Video.
GET /vizualizari/{idVizualizare}
Parametri de căutare
Nume | Tip | Descriere |
---|---|---|
idVizualizare | uuid | Recomandat. Identificatorul unic al vizualizării. |
Exemplu de cerere
GET /api/client/v1/vizualizari/9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a
Răspuns complet: GET /vizualizari/{idVizualizare}
{
"data": {
"id": "9c1a9e3e-6c9b-4f8a-8e2d-9b3c1d4e0f6a",
"titlu": "Design Avansat de API în Laravel",
"descriere": "O explorare adâncă a construirii API-urilor robuste.",
"durata_in_seconds": 3620,
"creat_at": "2024-08-10T12:00:00Z",
"manifest": {
"url_hls": "https://your-cdn.com/path/to/master.m3u8",
"url_dash": "https://your-cdn.com/path/to/manifest.mpd"
},
"subtitrari": [
{
"eticheta": "Engleză",
"limbă": "en",
"este_defalcat": true,
"url": "https://your-cdn.com/path/to/en.vtt"
},
{
"eticheta": "Spaniolă",
"limbă": "es",
"este_defalcat": false,
"url": "https://your-cdn.com/path/to/es.vtt"
}
],
"transcriere": {
"tip": "vtt",
"url": "https://your-cdn.com/path/to/transcript.vtt"
},
"miniaturi": [
{ "url": "https://your-cdn.com/path/to/thumb1.jpg" },
{ "url": "https://your-cdn.com/path/to/thumb2.jpg" }
],
"etichete": ["laravel", "api", "php"],
"metadata": {
"dificultate": "avansat",
"prezentator": "Jane Doe",
"curs_relasiunea": "API Mastery",
"limbă": "en-US"
}
}
}