Implementazione: risposte parziali

I seguenti esempi mostrano come recuperare risposte parziali dell'API nell'API YouTube Data (v3).

Nota: la guida introduttiva dell'API fornisce maggiori dettagli sulle richieste e sulle risposte parziali.

L'API v3 consente, e in realtà richiede, il recupero di risorse parziali, in modo che le applicazioni non trasferiscano, analizzino e archivino dati non necessari. Questo approccio garantisce inoltre che l'API utilizzi le risorse di rete, CPU e memoria in modo più efficiente.

L'API supporta due parametri di richiesta, part e fields, che ti consentono di identificare le proprietà della risorsa da includere nelle risposte dell'API. Il parametro part identifica anche le proprietà che devono essere impostate dalle richieste API che inseriscono o aggiornano risorse.

Tieni presente che se una richiesta di aggiornamento non specifica un valore per una proprietà della risorsa che in precedenza aveva un valore, il valore esistente verrà eliminato se si verificano le seguenti condizioni:

  • Il valore della proprietà può essere modificato dalla richiesta. Ad esempio, quando aggiorni una risorsa video, puoi aggiornare il valore della proprietà snippet.description, ma non puoi aggiornare il valore dell'oggetto snippet.thumbnails.

  • Il valore parametro part della richiesta identifica la parte della risorsa che contiene la proprietà.

Esempio

Supponi, ad esempio, di voler aggiornare la risorsa video mostrata di seguito. Tieni presente che tutte le proprietà mostrate di seguito possono essere aggiornate tramite l'API e che le proprietà delle risorse non pertinenti all'esempio sono state omesse.

{
  "snippet": {
    "title": "Old video title",
    "description": "Old video description",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  },
  "status": {
    "privacyStatus": "private",
    "publishAt": "2014-09-01T12:00:00.0Z",
    "license": "youtube",
    "embeddable": True,
    "publicStatsViewable": True
  }
}

Richiama il metodo videos.update e imposta il valore del parametro part su snippet. Il corpo della richiesta API contiene la seguente risorsa:

{
  "snippet": {
    "title": "New video title",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  }
}

Questa richiesta aggiorna il titolo del video, ne elimina la descrizione e non modifica i tag o l'ID categoria. La descrizione del video viene eliminata perché la richiesta non specifica un valore per la proprietà snippet.description.

Le proprietà nell'oggetto status non sono interessate in quanto il valore del parametro part non includeva status come una delle parti che la richiesta verrebbe aggiornata. Infatti, se il corpo della richiesta API includeva l'oggetto status, l'API restituisce una risposta HTTP 400 (Bad Request) perché nel corpo della richiesta è stata inclusa una parte imprevista.