Pročitaj na engleskom

Deli putem


Podaci upita pomoću Web API-ja za portale

Možete da koristite dostupne Web API operacije u usluzi Power Pages. Web API operacije sastoje se od HTTP zahteva i odgovora. Ovaj članak navodi primere operacija, metoda, URI-ja i JSON primere čitanja koje možete koristiti u HTTP zahtevu.

Preduslovi

  • Verzija vaše veb-lokacije mora biti 9.4.1.x ili novija.

  • Omogućite tabelu i polje za Web API operacije. Još informacija: Postavke lokacije za Web API

  • Web API za portale pristupa zapisima tabele i prati dozvole za tabele date korisnicima putem pridruženih veb-uloga. Uverite se da ste konfigurisali odgovarajuće dozvole za tabelu. Još informacija: Kreiranje veb-uloga

Napomena

Kada se pozivate na Dataverse tabele koje koriste Web API portala, potrebno je da koristite EntitySetName, na primer, za pristup tabeli poslovni kontakt, sintaksa koda će koristiti EntitySetName poslovni kontakt.

Zapisi upita

Sledeći primer postavlja upite zapisima poslovnog kontakta:

Operacija Metod URI
Preuzimanje zapisa tabele DOBITI [Portal URI]/_api/accounts

Primer:
https://contoso.powerappsportals.com/_api/accounts

Uzorak odgovor

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

Koristite opcije sistemskog upita $select i $top da biste vratili svojstvo imena za prva tri poslovna kontakta:

Operacija Metod URI
Preuzmi prva tri zapisa entiteta DOBITI [Portal URI]/_api/accounts?$select=name,revenue&$top=3

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

Preuzmi poslovni kontakt pomoću ID-a poslovnog kontakta:

Operacija Metod URI
Preuzimanje određenog svojstva zapisa DOBITI [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

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

Uzorak odgovor

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

Primena opcija sistemskog upita

Svaka od opcija sistemskog upita koju dodate URL adresi za skup entiteta dodaje se pomoću sintakse za niske upita. Prvi se dodaje posle [?] i sledeće opcije upita su razdvojene pomoću [&]. Sve opcije upita su osetljive na mala i velika slova, kao što je prikazano u sledećem primeru:

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

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

Svojstva specifična za zahtev

Koristite opciju sistemskog upita $select da biste ograničili vraćena svojstva, kao što je prikazano u sledećem primeru:

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

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

Važno

Ovo je najbolja praksa za performanse. Ako svojstva nisu navedena, a vi ste podesili vrednost postavke Webapi/<table name>/fields za lokaciju na *, sva svojstva će biti vraćena pomoću opcije $select. Ako nisu navedena svojstva, biće vraćena greška.

Rezultati filtera

Koristite $filter opciju sistemskog upita da biste postavili kriterijume za koje se vraćaju redovi.

Standardni operatori filtera

Web API podržava standardne operatore OData filtera navedene u sledećoj tabeli:

Operator Opis Primer
Upoređivanje operatora
eq Jednako $filter= prihod ekv 100000
ne Nije jednako $filter= prihod ne 100000
gt Veće od $filter=prihod GT 100000
ge Veće od ili jednako $filter= prihod ge 100000
lt Manje od $filter=prihod lt 100000
le Manje od ili jednako $filter=prihod le 100000
Logički operatori
I Logičko „i“ $filter = Prihod LT 100000 i prihod GT 2000
ili Logičko „ili“ $filter=sadrži(ime,'(uzorak)') ili sadrži(ime,'test')
not Logička negacija $filter= ne sadrži(ime,'uzorak')
Operatori grupisanja
( ) Grupisanje prvenstva (sadrži(ime,'uzorak') ili sadrži(ime,'test')) i prihod GT 5000

Standardne funkcije upita

Web API podržava ove standardne OData funkcije upita niske:

Funkciju Primer
sadrži $filter=sadrži(ime,'(uzorak)')
završava se sa $filter=endswith(ime,'Inc.')
startswith $filter=startswith(ime,'a')

Dataverse funkcije upita

Web API podržava Dataverse funkcije upita za filtriranje rezultata. Više informacija potražite u članku Referenca Web API funkcija upita.

Redosled rezultata

Navedite redosled kojim se stavke vraćaju pomoću opcije sistemskog upita $orderby. Koristite sufiks asc ili desc da biste naveli rastući ili opadajući redosled. Podrazumevana vrednost je rastući redosled ako sufiks nije primenjen. Sledeći primer prikazuje preuzimanje svojstava imena i prihoda poslovnih kontakata složenih po prihodu u rastućem redosledu i po imenu u opadajućem redosledu.

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

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

Rezultati agregiranja i grupisanja

Korišćenjem opcije $apply podatke možete da agregirate i grupišete dinamički, kao što se vidi u sledećim primerima:

Scenarija Primer
Lista jedinstvenih statusa u upitu accounts?$apply=groupby((statuscode))
Agregatni zbir procenjene vrednosti mogućnosti? $apply=agregat(procenjena vrednost sa sumom kao ukupan)
Prosečna veličina pogodbe na osnovu procenjene vrednosti i statusa mogućnosti? $apply=groupbi((statuscode),agregat(procenjena vrednost sa prosekom kao prosečna vrednost)
Zbir procenjene vrednosti na osnovu statusa mogućnosti?$apply=groupbi((statuscode),aggregate(procenjena vrednost sa sumom kao ukupan))
Ukupan prihod mogućnosti za poslovanje po imenu poslovnog kontakta mogućnosti?$apply=Groupbi((parentaccountid/name),aggregate(estimatedvalue with sum as total))
Imena primarnih kontakata za poslovne kontakte u 'WA' accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Datum i vreme poslednjeg kreiranog zapisa accounts?$apply=aggregate(createdon with max as lastCreate)
Datum i vreme prvog kreiranog zapisa accounts?$apply=agregat(createdon sa min kao firstCreate)

Preuzimanje broja redova

Koristite opciju sistemskog upita $count sa vrednošću „tačno“ da biste uključili prebrojavanje entiteta koji odgovaraju kriterijumima filtera do 5000.

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

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

Uzorak odgovor

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

Ako ne želite da vratite druge podatke osim prebrojavanja, možete da primenite $count na bilo koju kolekciju da biste dobili samo vrednost.

Metod URI
DOBITI [Portal URI/_api/accounts/$count

Primer:
https://contoso.powerappsportals.com/_api/accounts/$count

Uzorak odgovor

3

Poređenje kolona

Sledeći primer prikazuje kako se upoređuju kolone pomoću Web API-ja:

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

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

Koristite opciju sistemskog upita $expand u svojstvima navigacije da biste kontrolisali podatke povezanih entiteta.

Svojstvo navigacije povezane sa pronalaženjem

Potrebno je da koristite Microsoft.Dinamics.CRM.associatednavigationproperty kao atribut pretrage kada koristite opciju $expand upita.

Da biste utvrdili Microsoft.Dynamics.CRM.associatednavigationproperty atributa, možete da napravite sledeći http GET zahtev za kolonu koristeći sledeću konvenciju imenovanja: _name_value.

U sledećem primeru, možemo odrediti pridruženo svojstvo navigacije kolone Primarni kontakt tabele Poslovni kontakt tako što ćemo navesti ime kolone primarycontactid oblikovanjem imena u zahtevu: _primarycontactid_value.

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

Primer
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Uzorak odgovor

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

Iz odgovora vidimo da je pridruženo svojstvo navigacije primarycontactid. Svojstvo povezane navigacije može biti logičko ime ili ime šeme kolone za pronalaženje u zavisnosti od načina kreiranja tabele.

Za više informacija, pogledajte Preuzimanje podataka o osobinama pretrage.

Sledeći primer prikazuje kako se preuzima kontakt za sve zapise poslovnog kontakta. Za povezane zapise kontakata, mi preuzimamo samo contactid i fullname.

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

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

Uzorak odgovor

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

Ako proširite parametre navigacije sa kolekcijom vrednosti da biste preuzeli povezane tabele za skupove entiteta, biće vraćen samo jedan nivo dubine ako postoje podaci. U suprotnom, kolekcija vraća prazan niz.

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

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

Sledeći primer pokazuje kako možete da proširite povezane entitete za skupove entiteta koristeći svojstva navigacije sa jednom vrednošću i sa kolekcijom vrednosti. Potrebno je da navedete ime odnosa tabele u sintaksi vašeg koda.

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

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

Zapisi upita koristeći FetchKsml

Pronesite FetchKsml upit kao vrednost niza kodiranu URL-om u kolekciju skupa entiteta koristeći parametar upita FetchXml.

Na primer, da biste preuzeli podatke iz skupa entitetaračuna, sastavite FetchKsml upit koji postavlja parametar imena elementa entiteta na nalog.

<fetch top='2'>
  <entity name='account'>
      <attribute name='name' />
  </entity>
</fetch>

URL kodirani string za prethodni upit je:

%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
Metod URI
DOBITI [Portal URI]/_api/accounts?fetchxml

Primer:
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

Uzorak odgovor

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

Sledeći korak

Portali pišu, ažuriraju i brišu operacije korišćenja Veb API-ja

Pogledajte i ovo