Užklausų duomenys naudojant portalų žiniatinklio API
Galite naudoti prieinami žiniatinklio API veiksmai platformoje „Power Pages“. Žiniatinklio API operacijas sudaro HTTP užklausos ir atsakai. Šiame straipsnyje pateikiami operacijų, metodų, URI ir JSON, kurį galite naudoti HTTP užklausoje, pavyzdžiai.
Būtinosios sąlygos
Jūsų svetainės versija turi būti 9.4.1.x ar naujesnė.
Įjunkite žiniatinklio API operacijų lentelę ir lauką. Daugiau informacijos: Saito nustatymai Web API
Portalų Žiniatinklio API pasiekia lentelės įrašus ir vadovaujasi lentelės teisėmis, suteiktomis vartotojams per susietus žiniatinklio vaidmenis. Įsitikinkite, kad konfigūruojate tinkamas lentelių teises. Daugiau informacijos: Kurti žiniatinklio vaidmenis
Pastaba.
Nurodant lenteles Dataverse naudojant portalų žiniatinklio AP, Jums reikia naudoti EntitySetName, pavyzdžiui, prieigai prie paskyros lentelės, kodo sintaksė bus naudojama EntitySetName paskyrose.
Laukiami įrašai
Pateikiamas pavyzdys pateikia abonementų įrašų užklausas:
Operacija | Metodas | URI |
---|---|---|
Nuskaityti lentelių įrašus | PRIEITI | [Portal URI]/_api/accounts Pavyzdys: https://contoso.powerappsportals.com/_api/accounts |
atsakymas pavyzdys
{
"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"
}
]
}
Naudokite $select ir $top užklausos parinktis, jei norite grąžinti pirmųjų trijų abonementų pavadinimo ypatybę:
Operacija | Metodas | URI |
---|---|---|
Nuskaitykite pirmuosius tris objektų įrašus | PRIEITI | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Nuskaitykite paskyrą naudodami kliento ID:
Operacija | Metodas | URI |
---|---|---|
Nuskaityti konkrečią įrašo ypatybę | PRIEITI | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Pavyzdys: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
atsakymas pavyzdys
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Sistemos užklausos parinkčių taikykite
Kiekviena sistemos užklausos parinktis, kurią galite pridėti prie objektų rinkinio URL, įtraukiama naudojant užklausos eilučių sintaksę. Pirmasis pridedamas po [?], o šios užklausos parinktys atskiriamos naudojant [&]. Visoms užklausos parinktims skiriamos abc nuo abc, kaip pavaizduota šiame pavyzdyje:
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Užklausos konkrečios ypatybės
Naudokite parinktį $select jei norite apriboti pateiktas ypatybes, kaip parodyta šiame pavyzdyje:
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Svarbu
Tai yra geriausia veikimo praktika. Jei ypatybės nėra nurodytos ir konfigūravote Webapi/<table name>/fields
svetainės parametro reikšmę į *
, visos ypatybės bus grąžintos naudojant $select
. Jei jokių ypatybės nenurodytas, bus grąžinama klaida.
Filtravimo rezultatai
Naudokite $filter sistemos užklausos parinktį, kad nustatytumėte kriterijus, pagal kuriuos pateikiamos eilutės.
Sandartinio filtro operatoriai
Žiniatinklio API palaiko standartinius "OData" filtro operatorius, nurodytus toliau pateiktoje lentelėje.
Operatorius | Aprašas | Pavyzdys |
---|---|---|
Palyginimo operatoriai | ||
eq | Lygu | $filter=pajamų eq 100000 |
ne | Nelygu | $filter=pajamos ne 100000 |
gt | Daugiau nei | $filter=pajamos gt 100000 |
ge | Daugiau nei arba lygu | $filter=pajamos ge 100000 |
lt | Mažiau nei | $filter=pajamos lt 100000 |
le | Mažiau negu arba lygu | $filter=pajamos le 100000 |
Loginiai operatoriai | ||
ir | Loginis ir | $filter=pajamos lt 100000 ir pajamos gt 2000 |
or | Loginis ar | $filter=yra(pavadinimas,'(pavyzdys)') arba yra(pavadinimas,'testas') |
ne | Loginis negavimas | $filter=nėra (pavadinimas,'pavyzdys') |
Grupavimo operatoriai | ||
( ) | Ankstesnis grupavimas | (yra(pavadinimas,'pavyzdys') arba yra(pavadinimas,'testas')) ir pajamos gt 5000 |
Standartinės užklausos funkcijos
Žiniatinklio API palaiko šias standartines "OData" eilutės užklausos funkcijas:
Funkcija | Pavyzdys |
---|---|
su | $filter=yra(pavadinimas,'(pavyzdys)') |
baigiasi | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(vardas,'a') |
Dataverse užklausos funkcijos
Žiniatinklio API palaiko užklausų Dataverse funkcijas rezultatams filtruoti. Daugiau informacijos rasite žiniatinklio API užklausos funkcijos nuorodoje.
Tvarka pagal rezultatus
Nurodykite tvarką, kuria elementai grąžinami naudojant $orderby užklausos parinktį. Naudokite asc ar desc sufiksą atitinkamai didėjimo arba mažėjimo tvarkai nurodyti. Numatytasis nustatymas didėjimo tvarka, jei priesagoje nėra taikomas. Toliau pateikiamas pavyzdys, kuriame pateikiamas užsakytos paskyros pavadinimo ir pajamų ypatybės gavimas didėjant pajamoms ir mažėjimo tvarka.
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Rezultatų agregavimas ir grupavimas
Naudodami $apply, galite agreguoti ir grupuoti duomenis dinamiškai, kaip nurodyta toliau pateikiamame pavyzdyje:
Scenarijai | Pavyzdys |
---|---|
Unikalių užklausos būsenų sąrašas | accounts?$apply=groupby((statuscode)) |
Agreguoti apskaičiuotos vertės sumą | galimybės?$apply=agreguota(apskaičiuotavertė, kai suma yra bendra suma) |
Vidutinis sandorio dydis pagal numatomą vertę ir būseną | galimybės?$apply=groupby((statuscode),aggregate(apskaičiuotavertė su vidurkiu kaip vidutine verte) |
Numatomos reikšmės suma pagal būseną | galimybės?$apply=groupby((statuscode),aggregate(apskaičiuota vertė su suma kaip bendra)) |
Visos galimybės pajamos pagal kliento pavadinimą | galimybės?$apply=groupby((parentaccountid/name),aggregate(apskaičiuota vertė su suma kaip bendra)) |
Klientų pirminiai kontaktų vardai WA | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Paskutinė sukūrimo įrašo data ir laikas | accounts?$apply=aggregate(createdon with max as lastCreate) |
Pirmoji sukūrimo įrašo data ir laikas | accounts?$apply=aggregate(createdon with min as firstCreate) |
Nuskaitykite eilučių skaičių
Naudokite $count užklausos parinktį su teisinga reikšme, norėdami įtraukti objektų, atitinkančių filtravimo kriterijus iki 5 000, skaičių.
Metodas | URI |
---|---|
PRIEITI | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
atsakymas pavyzdys
{
"@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"
}
]
}
Jei nenorite grąžinti jokių duomenų, išskyrus skaičių, galite pritaikyti juos $count bet kuriam rinkiniui, kad gautumėte tik reikšmę.
Metodas | URI |
---|---|
PRIEITI | [Portal URI/_api/accounts/$count Pavyzdys: https://contoso.powerappsportals.com/_api/accounts/$count |
atsakymas pavyzdys
3
Stulpelių palyginimas
Toliau pateiktame pavyzdyje parodyta, kaip palyginti stulpelius naudojant žiniatinklio API:
Metodas | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Pavyzdys: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Gauti susijusių lentelių įrašus naudojant užklausą
Naudokite naršymo $expand sistemos užklausos parinktį ir valdykite, kokius duomenis iš susijusių objektų grąžinsite.
Su paieška susieta naršymo ypatybė
Turite naudoti Microsoft.Dynamics.CRM.associatednavigationproperty kaip peržvalgos atributą, kai naudojate užklausos parinktį $expand .
Norėdami nustatyti atributo Microsoft.Dynamics.CRM.associatednavigationproperty, galite pateikti toliau nurodytą stulpelio http GET užklausą naudodami tokį pavadinimą: _pavadinimas_reikšmė.
Šiame pavyzdyje galime nustatyti abonemento lentelės pagrindinio kontakto stulpelio susietąja naršymo ypatybę nurodydami stulpelio pavadinimą primarycontactid suformatuodami užklausos pavadinimą: _primarycontactid_value.
Metodas | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Pavyzdys https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
atsakymas pavyzdys
{
"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"
}
]
}
Iš atsako matote, kad susieta naršymo ypatybė yra primarycontactid. Susieta naršymo ypatybė gali būti arba peržvalgos stulpelio loginis pavadinimas arba schemos pavadinimas, priklausomai nuo to, kaip buvo sukurta lentelė.
Daugiau informacijos ieškokite Duomenų apie peržvalgos ypatybes gavimas.
Susijusių lentelių įrašų nuskaitykite išplečiant viengules naršymo ypatybes
Toliau pateikiamas pavyzdys, kaip nuskaityti visų klientų įrašų kontaktą. Susijusių kontaktų įrašų atveju nuskaitome tik contactid ir fullname.
Metodas | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
atsakymas pavyzdys
{
"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)"
}
}
]
}
Susijusių lentelių nuskaitykite išplečiant viengules kolekcijos ypatybes
Jei išplėsite rinkinio reikšmių naršymo parametrus ir nuskaitysite susijusias objektų rinkinių lenteles, jei yra duomenų, bus pateikiamas tik vienas gylio lygis. Kitu atveju kolekcija grąžina tuščią masyvą.
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Susijusių lentelių nuskaitykite išplečiant tiek vieno vertinimo, tiek ir kolekcijos ypatybes
Toliau pateikiamas pavyzdys, kaip galite išplėsti susijusius objektų rinkinių objektus naudodami viengules ir rinkinio reikšmių naršymo ypatybes. Kodo sintaksėje turite nurodyti lentelės ryšio pavadinimą .
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Užklausų įrašai naudojant "FetchXml"
Perduokite "FetchXml" užklausą kaip URL užkoduotą eilutės reikšmę objektų rinkinio rinkiniui naudodami užklausos parametrą "FetchXml".
Pavyzdžiui, norėdami gauti duomenis iš kliento objekto rinkinio, sukurkite "FetchXml" užklausą, nustatydami kliento objekto elemento pavadinimo parametrą.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
Ankstesnės užklausos URL užkoduota eilutė yra:
%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E
Metodas | URI |
---|---|
PRIEITI | [Portal URI]/_api/accounts?fetchxml Pavyzdys: https://contoso.powerappsportals.com/_api/accounts?fetchXml=%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E |
atsakymas pavyzdys
{
"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)"
}
}
]
}
Kitas veiksmas
Portalai rašo, naujina ir naikina operacijas naudodami žiniatinklio API