Zdieľať cez


Dopytujte údaje pomocou webového rozhrania API portálu

Môžete použiť dostupné operácie webového rozhrania API v riešení Power Pages. Webové operácie API pozostávajú z požiadaviek HTTP a odpovedí. V tomto článku sú uvedené vzorové operácie čítania, metódy, URI a vzorové JSON, ktoré môžete použiť v žiadosti HTTP.

Požiadavky

  • Vaša verzia webovej lokality musí byť 9.4.1.x alebo vyššia.

  • Povoľte tabuľku a pole pre operácie webového rozhrania API. Ďalšie informácie: Nastavenia lokality pre webové rozhranie API

  • Webové rozhranie API portálov pristupuje k záznamom tabuľky a riadi sa povoleniami tabuľky, ktoré dostali používatelia prostredníctvom pridružených webových rol. Uistite sa, že ste nakonfigurovali správne povolenia tabuľky. Ďalšie informácie: Vytváranie webových rolí

Poznámka

Pri odkaze na tabuľky Dataverse pomocou webového rozhrania API portálov vo vašom kóde musíte použiť EntitySetName, napríklad na prístup k tabuľke obchodný vzťah, syntax kódu použije EntitySetName obchodných vzťahov.

Dotazovanie záznamov

Nasledujúci príklad dotazuje záznamy obchodných vzťahov:

Prevádzka Metóda URI
Načítanie záznamov tabuľky GET [Portal URI]/_api/accounts

Príklad:
https://contoso.powerappsportals.com/_api/accounts

Ukážka odpoveď

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

Použite možnosti systémového dotazu $select a $top na vrátenie vlastnosti názvu pre prvé tri obchodné vzťahy:

Prevádzka Metóda URI
Získanie prvých troch záznamov entít GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

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

Načítanie účtu pomocou ID účtu:

Prevádzka Metóda URI
Načítanie konkrétnej vlastnosti pre záznam GET [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

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

Ukážka odpoveď

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

Použitie možností systémových dotazov

Každá z možností systémového dotazu, ktorú pripojíte k URL pre množinu entít, sa pridá pomocou syntaxe pre reťazce dotazu. Prvý je pripojený za [ ? ] a nasledujúce možnosti dotazu sú oddelené pomocou [ & ]. Všetky možnosti dotazu rozlišujú malé a veľké písmená, ako je znázornené v nasledujúcom príklade:

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

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

Požiadanie konkrétnych vlastností

Použite možnosť systémového dotazu $select na obmedzenie vrátených vlastností, ako je znázornené v nasledujúcom príklade:

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

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

Dôležité

Toto je osvedčený postup z hľadiska výkonu. Ak vlastnosti nie sú špecifikované a vy ste nakonfigurovali hodnotu nastavenia lokality Webapi/<table name>/fields na *, potom sa všetky vlastnosti vrátia pomocou $select. Ak nie sú špecifikované žiadne vlastnosti, vráti sa chyba.

Filtrovať výsledky

Použite $filter možnosť systémového dotazu na nastavenie kritérií, pre ktoré sa vrátia riadky.

Štandardné operátory filtrov

Webové rozhranie API podporuje štandardné operátory filtrov OData uvedené v nasledujúcej tabuľke:

Operátor Opis Príklad
Porovnávacie operátory
eq Rovná sa $filter=revenue eq 100000
ne Nerovná sa $filter=výnosy nie 100000
gt Väčšie ako $filter=revenue gt 100000
ge väčšie než alebo rovné $filter=revenue ge 100000
lt Menšie ako $filter=revenue lt 100000
le Menšie než alebo rovné $filter=revenue le 100000
Logické operátory
and Logický operátor AND $filter=revenue lt 100000 a tržby gt 2000
or Logický operátor OR $filter=contains(name,'(vzorka)') alebo obsahuje(name,'test')
not Logická negácia $filter=neobsahuje(názov,'ukážka')
Operátori zoskupovania
( ) Prednostné zoskupenie (obsahuje(názov,'vzorka') alebo obsahuje(názov,'test')) a príjem 5000 gt

Štandardné funkcie dotazov

Webové rozhranie API podporuje tieto štandardné funkcie dotazov reťazca OData:

Funkcia Príklad
obsahuje $filter=contains(name,'(ukážka)')
končí na $filter=endswith(name,'Inc.')
začína na $filter=startswith(name,'a')

Dotazovacie funkcie Dataverse

Webové rozhranie API podporuje funkcie dotazovania Dataverse na filtrovanie výsledkov. Ďalšie informácie nájdete v časti Odkaz na funkciu dotazovania webového rozhrania API.

Usporiadať výsledky

Zadajte poradie, v ktorom sa položky vrátia pomocou možnosti systémového dotazu $orderby. Použite príponu asc alebo desc na určenie vzostupného alebo zostupného poradia. Ak sa prípona nepoužije, predvolená hodnota je vzostupná. Nasledujúci príklad ukazuje načítanie názvu a vlastností výnosov obchodných vzťahov zoradených vzostupne podľa výnosu a zostupne podľa názvu.

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

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

Agregovanie a zoskupovanie výsledkov

Použitím príkazu $apply môžete údaje agregovať a zoskupovať dynamicky, ako je to znázornené v nasledujúcich príkladoch:

Scenáre Príklad
Zoznam jedinečných stavov v dotaze účty?$apply=groupby((statuscode))
Agregovaný súčet odhadovanej hodnoty príležitosti?$apply=aggregate(odhadovaná hodnota so súčtom ako celkom)
Priemerná veľkosť obchodu na základe odhadovanej hodnoty a stavu príležitosti?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
Súčet odhadovanej hodnoty na základe stavu príležitosti?$apply=groupby((statuscode),aggregate(estimatedvalue with total as total))
Celkový výnos z príležitosti podľa názvu obchodného vzťahu príležitosti?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with total as total))
Mená primárnych kontaktov pre obchodné vzťahy vo „WA“ účty?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Dátum a čas posledného vytvoreného záznamu účty?$apply=aggregate(createdon with max as lastCreate)
Dátum a čas prvého vytvoreného záznamu účty?$apply=aggregate(vytvorené s min ako firstCreate)

Načítanie počtu riadkov

Použite možnosť systémového dotazu $count s hodnotou true na zahrnutie počtu entít, ktoré zodpovedajú kritériám filtra, až do 5000.

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

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

Ukážka odpoveď

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

Ak nechcete vrátiť žiadne údaje okrem počtu, môžete použiť $count do akejkoľvek kolekcie, aby ste získali len hodnotu.

Metóda URI
GET [Portal URI/_api/accounts/$count

Príklad:
https://contoso.powerappsportals.com/_api/accounts/$count

Ukážka odpoveď

3

Porovnanie stĺpcov

Nasledujúci príklad ukazuje, ako porovnávať stĺpce pomocou webového rozhrania API:

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

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

Použite možnosť systémového dotazu $expand vo vlastnostiach navigácie na kontrolu toho, aké údaje zo súvisiacich entít sa vrátia.

Vyhľadanie priradenej vlastnosti navigácie

Musíte použiť Microsoft.Dynamics.CRM.associatednavigationproperty ako atribút vyhľadávania pri použití $expand možnosť dotazu.

Na určenie Microsoft.Dynamics.CRM.associatednavigationproperty atribútu môžete vykonať nasledujúcu požiadavku http GET pre stĺpec pomocou nasledujúcej konvencie pomenovania: _názov_hodnota.

V nasledujúcom príklade môžeme určiť priradenú vlastnosť navigácie stĺpca Primárny kontakt tabuľky Obchodný vzťah zadaním názvu stĺpca primarycontactid naformátovaním názvu v požiadavke: _primarycontactid_value.

Metóda URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Príklad
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Ukážka odpoveď

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

Z odpovede vidíme, že priradená vlastnosť navigácie je primarycontactid. Pridruženou vlastnosťou navigácie môže byť buď vyhľadávací stĺpec logický názov alebo názov schémy podľa toho, ako bola tabuľka vytvorená.

Ďalšie informácie nájdete v časti Načítanie údajov o vlastnostiach vyhľadávania.

Nasledujúci príklad ukazuje, ako získať kontakt pre všetky záznamy obchodných vzťahov. Pre súvisiace záznamy kontaktov získavame iba contactid a fullname.

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

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

Ukážka odpoveď

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

Ak rozbalíte navigačné parametre s viacerými hodnotami, aby ste získali súvisiace tabuľky pre množiny entít, v prípade údajov sa vráti iba jedna úroveň hĺbky. V opačnom prípade kolekcia vráti prázdne pole.

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

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

Nasledujúci príklad ukazuje, ako môžete rozšíriť súvisiace entity pre množiny entít pomocou vlastností navigácie s jednou hodnotou aj s viacerými hodnotami. V syntaxi kódu musíte zadať názov vzťahu tabuľky .

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

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

Dopyt po záznamoch pomocou FetchXml

Odovzdajte dopyt FetchXml ako hodnotu reťazca zakódovanú v adrese URL do kolekcie množín entít pomocou parametra dopytu FetchXml.

Ak chcete napríklad získať údaje zo množiny entity účtu, vytvorte dotaz FetchXml, ktorým nastavíte parameter názvu prvku entity na účet.

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

Reťazec zakódovaný v adrese URL pre predchádzajúci dopyt 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
Metóda URI
GET [Portal URI]/_api/accounts?fetchxml

Príklad:
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

Ukážka odpoveď

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

Ďalší krok

Portály zapisujú, aktualizujú a vymazávajú operácie pomocou webového rozhrania API

Pozrite si tiež