Filtro, ordinamento e entità di paging

Logo servizi multimediali v3


Sito Web | AMS Esempi di | codice Guida alla risoluzione dei problemi

Questo argomento illustra le opzioni di query OData e il supporto per la paginazione disponibili quando si elencano le entità di Servizi multimediali di Azure v3.

Considerazioni

  • Le proprietà delle entità di tipo Datetime sono sempre in formato UTC.
  • Lo spazio vuoto nella stringa di query deve essere con codifica URL prima dell'invio di una richiesta.

Operatori di confronto

Per confrontare un campo con un valore costante, è possibile usare gli operatori seguenti:

Operatori di uguaglianza:

  • eq: verifica se un campo è uguale a un valore costante.
  • ne: verifica se un campo è diverso da un valore costante.

Operatori di intervallo:

  • gt: verifica se un campo è maggiore di un valore costante.
  • lt: verifica se un campo è minore di un valore costante.
  • ge: verifica se un campo è maggiore o uguale a un valore costante.
  • le: verifica se un campo è minore o uguale a un valore costante.

Filtro

Usare $filter per fornire un parametro di filtro OData per trovare solo gli oggetti a cui si è interessati.

L'esempio REST seguente applica un filtro in base al valore alternateId di un asset:

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$filter=properties/alternateId%20eq%20'unique identifier'

L'esempio C# seguente applica un filtro in base alla data di creazione dell'asset:

var odataQuery = new ODataQuery<Asset>("properties/created lt 2018-05-11T17:39:08.387Z");
var firstPage = await MediaServicesArmClient.Assets.ListAsync(CustomerResourceGroup, CustomerAccountName, odataQuery);

Order by

Usare $orderby per ordinare gli oggetti restituiti in base al parametro specificato. Ad esempio:

GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01$orderby=properties/created%20gt%202018-05-11T17:39:08.387Z

Per ordinare i risultati in ordine crescente o decrescente, aggiungere asc o desc al nome del campo, separati da uno spazio. Ad esempio: $orderby properties/created desc.

Skip token

Se la risposta di una query contiene molti elementi, il servizio restituisce un valore $skiptoken (@odata.nextLink) da usare per ottenere la pagina di risultati successiva. Usarlo per scorrere l'intero set di risultati.

In Servizi multimediali v3 non è possibile configurare le dimensioni delle pagine. Le dimensioni delle pagine variano in base al tipo di entità. Leggere le singole sezioni che seguono per informazioni dettagliate.

Se vengono create o eliminate entità durante lo scorrimento delle pagine della raccolta, le modifiche si riflettono nei risultati restituiti (se tali modifiche riguardano la parte della raccolta che non è stata scaricata).

Suggerimento

Usare sempre nextLink per enumerare la raccolta e non dipendere da determinate dimensioni di pagina.

Il valore nextLink sarà presente solo se esistono più pagine di entità.

Si consideri l'esempio seguente per vedere dove viene usato $skiptoken. Assicurarsi di sostituire amstestaccount con il proprio nome dell'account e di impostare il valore api-version sulla versione più recente.

Se si richiede un elenco degli asset simile al seguente:

GET  https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01 HTTP/1.1
x-ms-client-request-id: dd57fe5d-f3be-4724-8553-4ceb1dbe5aab
Content-Type: application/json; charset=utf-8

Si ottiene una risposta simile a questa:

HTTP/1.1 200 OK

{
"value":[
{
"name":"Asset 0","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaservices/amstestaccount/assets/Asset 0","type":"Microsoft.Media/mediaservices/assets","properties":{
"assetId":"00000000-0000-0000-0000-000000000000","created":"2018-12-11T22:12:44.98Z","lastModified":"2018-12-11T22:15:48.003Z","container":"asset-00000000-0000-0000-0000-0000000000000","storageAccountName":"amsacctname","storageEncryptionFormat":"None"
}
},
// lots more assets
{
"name":"Asset 517","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaservices/amstestaccount/assets/Asset 517","type":"Microsoft.Media/mediaservices/assets","properties":{
"assetId":"00000000-0000-0000-0000-000000000000","created":"2018-12-11T22:14:08.473Z","lastModified":"2018-12-11T22:19:29.657Z","container":"asset-00000000-0000-0000-0000-000000000000","storageAccountName":"amsacctname","storageEncryptionFormat":"None"
}
}
],"@odata.nextLink":"https:// management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517"
}

Si può quindi richiedere la pagina successiva inviando una richiesta get per:

https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mediaresources/providers/Microsoft.Media/mediaServices/amstestaccount/assets?api-version=2018-07-01&$skiptoken=Asset+517

L'esempio in C# seguente illustra come enumerare tutti i localizzatori di streaming nell'account.

var firstPage = await MediaServicesArmClient.StreamingLocators.ListAsync(CustomerResourceGroup, CustomerAccountName);

var currentPage = firstPage;
while (currentPage.NextPageLink != null)
{
    currentPage = await MediaServicesArmClient.StreamingLocators.ListNextAsync(currentPage.NextPageLink);
}

Uso di operatori logici per combinare le opzioni di query

Servizi multimediali v3 supporta gli operatori logici OR e AND.

L'esempio REST seguente controlla lo stato del processo:

https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/qbtest/providers/Microsoft.Media/mediaServices/qbtest/transforms/VideoAnalyzerTransform/jobs?$filter=properties/state%20eq%20Microsoft.Media.JobState'Scheduled'%20or%20properties/state%20eq%20Microsoft.Media.JobState'Processing'&api-version=2018-07-01

La stessa query viene creata in C# come segue:

var odataQuery = new ODataQuery<Job>("properties/state eq Microsoft.Media.JobState'Scheduled' or properties/state eq Microsoft.Media.JobState'Processing'");
client.Jobs.List(config.ResourceGroup, config.AccountName, VideoAnalyzerTransformName, odataQuery);

Opzioni di filtro e ordinamento delle entità

La tabella seguente illustra come applicare le opzioni di filtro e ordinamento a entità diverse:

Nome dell'entità Nome della proprietà Filtro JSON
Asset name eq, gt, lt, ge, le asc e desc
proprietà/alternateId eq
proprietà/assetId eq
proprietà/creazione eq, gt, lt asc e desc
Criteri chiave simmetrica name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
properties/description eq, ne, ge, le, gt, lt
proprietà/lastModified eq, ne, ge, le, gt, lt asc e desc
proprietà/policyId eq, ne
Processi name eq asc e desc
properties/state eq, ne
proprietà/creazione gt, ge, lt, le asc e desc
proprietà/lastModified gt, ge, lt, le asc e desc
Localizzatori di streaming name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
proprietà/endTime eq, ne, ge, le, gt, lt asc e desc
Criteri di streaming name eq, ne, ge, le, gt, lt asc e desc
proprietà/creazione eq, ne, ge, le, gt, lt asc e desc
Trasformazioni name eq asc e desc
proprietà/creazione gt, ge, lt, le asc e desc
proprietà/lastModified gt, ge, lt, le asc e desc

Guida e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in base a uno dei metodi seguenti: