Query di dati utilizzando l'API Web dei portali
Nota
A partire dal 12 ottobre 2022, i portali Power Apps sono denominati Power Pages. Altre informazioni: Microsoft Power Pages è ora generalmente disponibile (blog)
A breve verrà eseguita la migrazione e l'unione della documentazione dei portali Power Apps con la documentazione di Power Pages.
Puoi usare le operazioni API Web disponibili nei portali. Le operazioni API Web sono costituite da richieste e risposte HTTP. Questo articolo fornisce operazioni di lettura di esempio, metodi, URI e JSON di esempio che puoi usare nella richiesta HTTP.
Prerequisiti
La versione del tuo portale deve essere 9.4.1.x o successiva.
Abilita la tabella e il campo per le operazioni dell'API Web. Maggiori informazioni: Impostazioni del sito per l'API Web
L'API Web dei portali accede ai record della tabella e segue le autorizzazioni della tabella fornite agli utenti tramite i ruoli web associati. Assicurati di configurare le autorizzazioni della tabella corrette. Più informazioni: Creare ruoli web
Nota
Quando si fa riferimento alle tabelle Dataverse utilizzando l'API Web dei portali, è necessario utilizzare EntitySetName, ad esempio, per accedere alla tabella degli account, la sintassi del codice utilizzerà EntitySetName di account.
Query di record
L'esempio seguente esegue una query dei record dell'account:
Operazione | Method | URI |
---|---|---|
Recupera record di tabella | GET | [Portal URI]/_api/accounts Esempio: https://contoso.powerappsportals.com/_api/accounts |
Risposta di esempio
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Usa le opzioni di query di sistema $select e $top per restituire la proprietà nome per i primi tre account:
Operazione | Method | URI |
---|---|---|
Recupera i primi tre record di entità | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Recupera l'account utilizzando l'ID account:
Operazione | Method | URI |
---|---|---|
Recupera una proprietà specifica per un record | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Esempio: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Risposta di esempio
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Applicare le opzioni di query di sistema
Ciascuna delle opzioni di query di sistema che aggiungi all'URL per il set di entità viene aggiunta utilizzando la sintassi per le stringhe di query. La prima è aggiunta dopo [?] e le seguenti opzioni di query sono separate usando [&]. Tutte le opzioni di query fanno distinzione tra maiuscole e minuscole, come mostrato nell'esempio seguente:
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Richiedere proprietà specifiche
Utilizza l'opzione di query di sistema $select per limitare le proprietà restituite come mostrato nell'esempio seguente:
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Importante
Questa è una procedura consigliata per le prestazioni. Se le proprietà non sono specificate e hai configurato il valore di impostazione del sito Webapi/<table name>/fields
su *
, tutte le proprietà verranno restituite utilizzando $select
. Se non vengono specificate proprietà, verrà restituito un errore.
Filtrare i risultati
Utilizza l'opzione di query di sistema $filter per impostare i criteri secondo cui verranno restituite le righe.
Operatori di filtro standard
L'API Web supporta gli operatori di filtro OData standard elencati nella tabella seguente:
Operator | Descrizione | Esempio |
---|---|---|
Operatori di confronto | ||
eq | Uguale | $filter=revenue eq 100000 |
ne | Non uguale | $filter=revenue ne 100000 |
gt | Maggiore di | $filter=revenue gt 100000 |
ge | Maggiore di o uguale a | $filter=revenue ge 100000 |
lt | Minore di | $filter=revenue lt 100000 |
le | Minore di o uguale a | $filter=revenue le 100000 |
Operatori logici | ||
and | And logico | $filter=revenue lt 100000 and revenue gt 2000 |
or | Or logico | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Negazione logica | $filter=not contains(name,'sample') |
Operatori di raggruppamento | ||
( ) | Raggruppamento di precedenza | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Funzioni di query standard
L'API Web supporta queste funzioni di query stringa OData standard:
Funzione | Esempio |
---|---|
contiene | $filter=contains(name,'(sample)') |
finisce con | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Funzioni di query Dataverse
L'API Web supporta le funzioni di query Dataverse per filtrare i risultati. Per altre informazioni, vedi Informazioni di riferimento sulle funzioni di query dell'API Web.
Ordina i risultati
Specifica l'ordine in cui gli elementi vengono restituiti utilizzando l'opzione di query di sistema $orderby . Utilizza il suffisso asc o desc per specificare rispettivamente l'ordine crescente o decrescente. L'impostazione predefinita è crescente se il suffisso non viene applicato. L'esempio seguente mostra il recupero del nome e delle proprietà dei ricavi degli account ordinati per ricavi crescenti e per nome decrescente.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Aggregare e raggruppare i risultati
Usando $apply, puoi aggregare e raggruppare i tuoi dati in modo dinamico come mostrato nei seguenti esempi:
Scenari | Esempio |
---|---|
Elenco degli stati univoci nella query | accounts?$apply=groupby((statuscode)) |
Somma aggregata del valore stimato | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Dimensione media della transazione in base al valore e allo stato stimati | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Somma del valore stimato in base allo stato | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Ricavi opportunità totali per nome account | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Nomi dei contatti primari per gli account in "WA" | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Data e ora creazione ultimo record | accounts?$apply=aggregate(createdon with max as lastCreate) |
Data e ora creazione primo record | accounts?$apply=aggregate(createdon with min as firstCreate) |
Recuperare un conteggio delle righe
Utilizza l'opzione di query di sistema $count con il valore Vero per includere un conteggio delle entità che corrispondono ai criteri di filtro fino a 5.000.
Method | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Risposta di esempio
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Se non vuoi restituire nessun dato tranne il conteggio, puoi applicare $count a qualsiasi raccolta per ottenere solo il valore.
Method | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Esempio: https://contoso.powerappsportals.com/_api/accounts/$count |
Risposta di esempio
3
Confronto colonne
L'esempio seguente mostra come confrontare le colonne utilizzando l'API Web:
Method | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Esempio: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Recuperare i record della tabella correlati con una query
Utilizza l'opzione di query di sistema $expand nelle proprietà di spostamento per controllare quali dati vengono restituiti dalle entità correlate.
Proprietà di navigazione associata alla ricerca
Dovrai usare Microsoft.Dynamics.CRM.associatednavigationproperty come attributo di ricerca quando utilizzi l'opzione di query $expand.
Per determinare la proprietà Microsoft.Dynamics.CRM.associatednavigationproperty di un attributo, puoi effettuare la seguente richiesta http GET per la colonna utilizzando la seguente convenzione di denominazione: _name_value.
Nell'esempio seguente, possiamo determinare la proprietà di navigazione associata della colonna Contatto primario della tabella Account specificando il nome di colonna primarycontactid formattando il nome nella richiesta: _primarycontactid_value.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Esempio https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Risposta di esempio
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
Nella risposta è possibile osservare che la proprietà di navigazione associata è primarycontactid. La proprietà di navigazione associata può essere il nome logico o il nome di schema della colonna di ricerca a seconda di come è stata creata la tabella.
Per ulteriori informazioni, vedi Recuperare dati sulle proprietà di ricerca.
Recuperare i record della tabella correlati espandendo le proprietà di spostamento a valore singolo
L'esempio seguente mostra come recuperare il contatto per tutti i record dell'account. Per i relativi record di contatti, stiamo recuperando solo contactid e fullname.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Esempio: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Risposta di esempio
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
Recuperare le tabelle correlate espandendo le proprietà di spostamento a valore raccolta
Se espandi i parametri di spostamento con valori di raccolta per recuperare le tabelle correlate per i set di entità, viene restituito un solo livello di profondità se sono presenti dati. In caso contrario, la raccolta restituirà un array vuoto.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Esempio: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Recuperare le tabelle correlate espandendo le proprietà di spostamento a valore singolo e raccolta
L'esempio seguente mostra come espandere le entità correlate per i set di entità utilizzando proprietà di spostamento a valore singolo e raccolta. Dovrai specificare il nome della relazione della tabella nella sintassi del tuo codice.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Esempio: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Passaggio successivo
Operazioni di scrittura, aggiornamento ed eliminazione dei portali con l'API Web
Vedi anche
Panoramica dell'API Web dei portali
Esercitazione: utilizzare l'API Web dei portali
Configurare le autorizzazioni di colonna
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).