Bendrinti naudojant


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

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.

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

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)

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

Taip pat žr.