Implementazione: risposte parziali

Gli esempi riportati di seguito mostrano come recuperare risposte parziali dell'API nell'API YouTube Data (v3).

Nota:la guida Introduzione dell'API fornisce ulteriori dettagli su richieste e risposte parziali.

L'API v3 consente e richiede il recupero di risorse parziali in modo che le applicazioni evitino di trasferire, analizzare e memorizzare 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 consentono di identificare le proprietà delle risorse da includere nelle risposte dell'API. Il parametro part identifica anche le proprietà che devono essere impostate dalle richieste API che inseriscono o aggiornano le 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 le seguenti condizioni sono vere:

  • 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 del parametro part della richiesta identifica la parte della risorsa che contiene la proprietà.

Esempio

Ad esempio, supponiamo che tu voglia 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
  }
}

Chiami il metodo videos.update e imposti il valore del parametro part su snippet. Il corpo della richiesta dell'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 perché il valore del parametro part non includeva status come una delle parti che la richiesta aggiornava. Infatti, se il corpo della richiesta API includeva l'oggetto status, l'API restituiva una risposta HTTP 400 (Bad Request) a causa di una parte imprevista inclusa nel corpo della richiesta.