Kopīgot, izmantojot


Vaicājumu dati, izmantojot portālu tīmekļa API

Piezīme

No 2022. gada 12. oktobra, Power Apps portāli ir Power Pages. Papildinformācija. Pakalpojums Microsoft Power Pages tagad ir vispārēji pieejams (emuārs)
Drīzumā Power Apps portālu dokumentācija tiks migrēta un sapludināta ar Power Pages dokumentāciju.

Varat izmantot pieejamās tīmekļa API operācijas portālos. Web API operācijas sastāv no HTTP pieprasījumiem un atbildēm. Šajā rakstā ir parādītas parauga lasīšanas operācijas, metodes, URI, un JSON paraugs, ko varat izmantot HTTP pieprasījumā.

Priekšnoteikumi

  • Jūsu portāla versijai ir jābūt 9.4.1.x vai jaunākai.

  • Iespējot tabulu un lauku tīmekļa API operācijām. Papildu informācija: Tīmekļa API vietnes iestatījumi

  • Portālu Web API piekļūst tabulu ierakstiem un ievēro tabulas atļaujas, kas lietotājiem tiek dotas, izmantojot saistītās tīmekļa lomas. Pārliecinieties, vai ir konfigurētas pareizās tabulu atļaujas. Papildu informācija: Tīmekļa lomu izveide

Piezīme

Atsaucoties uz Dataverse tabulām, kas izmanto portālu Web API, ir jāizmanto EntitySetName, piemēram, lai piekļūtu uzņēmuma tabulai, koda sintakse izmantos uzņēmumu EntitySetName.

Vaicājuma ieraksti

Tālāk sniegtajā piemērā tiek vaicājumi par uzņēmumu ierakstiem:

Operācija Metode URI
Izgūt tabulu ierakstus GET [Portal URI]/_api/accounts

Piemērs:
https://contoso.powerappsportals.com/_api/accounts

Atbildes paraugs

{
"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"
    }
]
}

Izmantojiet $select un $top sistēmas vaicājuma opcijas, lai atgrieztu pirmo trīs uzņēmumu nosaukuma rekvizītu:

Operācija Metode URI
Izgūt pirmos trīs entītiju ierakstus GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Izgūt uzņēmumu, izmantojot uzņēmuma ID:

Operācija Metode URI
Izgūt noteiktu ieraksta rekvizītu GET [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Piemērs:
https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Atbildes paraugs

{
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}

Sistēmas vaicājuma opciju izmantošana

Katra no sistēmas vaicājuma opcijām, ko pievienojat entītiju kopas URL, tiek pievienota, izmantojot vaicājuma virkņu sintaksi. Pirmais tiek pievienots pēc [?], un šīs vaicājuma opcijas tiek atdalītas, izmantojot [&]. Visas vaicājuma opcijas ir reģistrjutīgas, kā parādīts šajā piemērā:

Metode URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Pieprasīt noteiktus rekvizītus

 Izmantojiet opciju $select sistēmas vaicājums, lai ierobežotu atgrieztos rekvizītus, kā parādīts šajā piemērā:

Metode URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Svarīgi

Šī ir veiktspējas paraugprakse. Ja rekvizīti nav norādīti un ir konfigurēta vietnes iestatījuma Webapi/<table name>/fields vērtība uz *, tad visi rekvizīti tiks atgriezti, izmantojot $select. Ja nav norādīts neviens rekvizīts, tiks atgriezta kļūda.

Rezultātu filtrēšana

 Izmantojiet opciju $filter sistēmas vaicājums, lai iestatītu kritērijus, kuriem rindas tiks atgrieztas.

Standarta filtra operatori

Tīmekļa API atbalsta standarta OData filtra operatorus, kas norādīti tālāk sniegtajā tabulā:

Operators Apraksts Piemērs
Salīdzinājuma operatori
eq Vienāds $filter=ieņēmumu vienādi ar 100000
ne Nav vienāds $filter= ieņēmumi nav vienādi ar 100000
gt Ir lielāks nekā $filter= ieņēmumi lielāki par 100000
ge Lielāks par vai vienāds ar $filter= ieņēmumi lielāki vai vienādi ar 100000
lt Ir mazāks nekā $filter= ieņēmumi mazāki par 100000
le Mazāks par vai vienāds ar $filter= ieņēmumi mazāki vai vienādi ar 100000
Loģiskie operatori
UN Loģisks un $filter=ieņēmumi mazāki par 100000 un ieņēmumi lielāki par 2000
or Loģisks vai $filter=satur(name,'(sample)') vai satur (name,'test')
nav Loģiskais noliegums $filter=nesatur(nosaukums,'paraugs')
Operatoru grupēšana
( ) Prioritārā grupēšana (satur(name,'sample') vai satur(name,'test')) un ieņēmumi ir lielāki par 5000

Standarta vaicājuma funkcijas

Tīmekļa API atbalsta šīs standarta OData virknes vaicājuma funkcijas:

Funkcija Piemērs
satur $filter=satur(nosaukums,'(paraugs)')
endswith $filter=endswith(name,'Inc.')
startswith $filter=startswith(name,'a')

Dataverse vaicājuma funkcijas

Tīmekļa API atbalsta vaicājumu funkcijas Dataverse, lai filtrētu rezultātus. Papildu informāciju skatiet Tīmekļa API atsauce uz vaicājuma funkciju.

Rezultātu kārtošana

Norādiet secību, kādā vienumi tiek atgriezti, izmantojot $orderby sistēmas vaicājuma  opciju. Izmantojiet sufiksu asc vai desc **** , lai norādītu attiecīgi augošu vai dilstošu secību. Noklusējuma vērtība tiek augošā secībā, ja netiek lietots sufikss. Šajā piemērā parādīts, kā izgūt to uzņēmumu nosaukumu un ieņēmumu rekvizītus, kas pasūtīti, augošā secībā pārsniedzot ieņēmumus, pēc nosaukuma dilstošā secībā.

Metode URI
GET [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Rezultātu apkopošana un grupēšana

Izmantojot $apply, jūs varat dinamiski apkopot un grupēt savus datus,  kā redzams šajos piemēros:

Gadījumu piemēri Piemērs
Vaicājuma unikālo statusu saraksts accounts?$apply=groupby((statuscode))
Prognozētās vērtības kopsumma opportunities?$apply=aggregate(prognozētā vērtība ar kopsummu)
Vidējais darījuma lielums, pamatojoties uz prognozēto vērtību un statusu opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue ar vidējo vērtību kā vidējo vērtību)
Uz statusu pamatota prognozējamās vērtības summa opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue ar kopsummu kā kopējo summu))
Iespējas ieņēmumu kopsumma pēc uzņēmuma nosaukuma opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue ar kopsummu kā kopējo summu))
Uzņēmumu primārie kontaktpersonu vārdi vārdā 'WA' accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Pēdējā izveidota ieraksta datums un laiks accounts?$apply=aggregate(createdon with max as lastCreate)
Pirmā izveidotā ieraksta datums un laiks accounts?$apply=aggregate(createdon with min as firstCreate)

Rindu skaita izgūšana

 Izmantojiet $count sistēmas vaicājuma opciju ar vērtību true, lai iekļautu entītiju skaitu, kas atbilst filtra kritērijiem līdz 5 000.

Metode URI
GET [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Atbildes paraugs

{
"@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"
    }
]
}

Ja nevēlaties atgriezt nekādus datus, izņemot skaitu, varat pieteikties $count jebkurai kolekcijai, lai iegūtu tikai vērtību.

Metode URI
GET [Portal URI/_api/accounts/$count

Piemērs:
https://contoso.powerappsportals.com/_api/accounts/$count

Atbildes paraugs

3

Kolonnu salīdzināšana

Šajā piemērā parādīts, kā salīdzināt kolonnas, izmantojot tīmekļa API:

Metode URI
GET [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname

Piemērs:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

Saistīto tabulu ierakstu izgūšana, izmantojot vaicājumu

 Navigācijas rekvizītos izmantojiet opciju $expand sistēmas vaicājums, lai kontrolētu, kādi dati no saistītajām entītijām tiek atgriezti.

Ar navigācijas rekvizītu saistīta uzmeklēšana

Jums vajadzēs izmantot Microsoft.Dynamics.CRM.associatednavigationproperty kā uzmeklēšanas atribūts, izmantojot vaicājuma opciju $expand.

Lai noteiktu atribūta Microsoft.Dynamics.CRM.associatednavigationproperty, varat kolonnai veikt šādu http GET pieprasījumu, izmantojot šādu nosaukuma piešķiršanas metodi: _name_value.

Nākamajā piemērā varam noteikt saistīto Uzņēmuma tabulas Primārās kontaktpersonas kolonnas navigācijas rekvizītu, norādot kolonnas nosaukumu primarycontactid, formatējot pieprasījumā nosaukumu: _primarycontactid_value.

Metode URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Piemērs
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Atbildes paraugs

{
"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"
    }
]
}

Atbildes rakstā redzams, ka saistītais navigācijas rekvizīts ir primarycontactid. Saistītais navigācijas rekvizīts var būt vai nu uzmeklēšanas kolonnas loģiskais nosaukums, vai shēmas nosaukums atkarībā no tabulas izveides.

Papildu informāciju skatiet sadaļā Datu izgūšana par uzmeklēšanas rekvizītiem.

Saistīto tabulu ierakstu izgūšana, izvēršot vienas vērtības navigācijas rekvizītus

Šajā piemērā parādīts, kā izgūt kontaktpersonu visiem uzņēmuma ierakstiem. Attiecībā uz saistītajiem kontaktpersonu ierakstiem mēs izgūstam tikai contactid un fullname.

Metode URI
GET [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Atbildes paraugs

{
"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)"
        }
    }
]
}

Saistīto tabulu ierakstu izgūšana, izvēršot vienas vērtības kolekcijas navigācijas rekvizītus

Ja izvēršot kolekcijas vērtību navigācijas parametrus, lai izgūtu saistīto tabulu entītiju kopas, tad, ja ir dati, tiek atgriezts tikai viens padziļinātais līmenis. Pretējā gadījumā kolekcija atgriezīs tukšu masīvu.

Metode URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Saistīto tabulu ierakstu izgūšana, izvēršot gan vienas vērtības, gan kolekcijas navigācijas rekvizītus

Tālāk sniegtajā piemērā tiek parādīts, kā varat izvērst entītiju kopām saistītās entītijas, izmantojot gan vienas vērtības, gan kolekcijas vērtību navigācijas rekvizītus. Koda sintaksē ir jānorāda tabulas attiecību nosaukums.

Metode URI
GET [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Piemērs:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Nākamā darbība

Portālu rakstīšanas, atjaunināšanas un dzēšanas darbības, izmantojot Tīmekļa API

Skatiet arī:

Portālu tīmekļa API pārskats
Apmācība: portāla tīmekļa API lietošana
Kolonnu atļauju konfigurēšana

Piezīme

Kādas ir jūsu dokumentācijas valodas preferences? Aizpildiet īsu aptauju. (ņemiet vērā, ka aptauja ir angļu valodā)

Aptaujai būs nepieciešamas aptuveni septiņas minūtes. Nekādi personas dati netiks vākti (paziņojums par konfidencialitāti).