Používanie webového rozhrania API na portáloch na operácie zápisu, aktualizácie a odstránenia

Poznámka

S účinnosťou od 12. októbra 2022 sa portály Power Apps nazývajú Power Pages. Ďalšie informácie: Služba Microsoft Power Pages je teraz všeobecne dostupná (blog)
Čoskoro vykonáme migráciu a zlúčenie dokumentácie k portálom Power Apps s dokumentáciou k službe Power Pages.

Môžete realizovať dostupné operácie webového API na portáloch. Webové operácie API pozostávajú z požiadaviek HTTP a odpovedí. Tento článok poskytuje vzorové operácie zápisu, aktualizácie a odstraňovania, metódy, identifikátor URI a vzorový JSON, ktoré môžete použiť v požiadavkách HTTP.

Dôležité

  • Aby táto funkcia fungovala, musí byť vaša verzia portálu 9.3.3.x alebo novšia.

Požiadavky

  • 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í

Vytvorenie záznamu v tabuľke

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.

Základné vytvorenie

Operation Method URI Ukážka JSON
Základné vytvorenie PRÍSPEVOK [Portal URI]/_api/accounts {"name":"Sample Account"}

Vzorový súbor JSON na vytváranie súvisiacich záznamov tabuľky v jednej operácii

Napríklad nasledujúci text žiadosti zverejnený do množiny tabuliek Obchodný vzťah vytvorí celkovo štyri nové tabuľky – vrátane obchodného vzťahu – v rámci vytvárania obchodného vzťahu.

  • Kontakt sa vytvorí, pretože je definovaný ako vlastnosť objektu navigačnej vlastnosti s jednou hodnotou primarycontactid.
  • Príležitosť sa vytvára, pretože je definovaná ako objekt v poli, ktoré je nastavené na hodnotu navigačnej vlastnosti s hodnotou opportunity_customer_accounts.
  • Úloha sa vytvára, pretože je definovaná ako objekt v poli, ktoré je nastavené na hodnotu navigačnej vlastnosti s hodnotou Opportunity_Tasks.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Priradenie záznamov tabuliek pri vytváraní

Operation Method URI Ukážka JSON
Priradenie záznamov tabuliek pri vytváraní POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Ukážkový súbor JSON na vytváranie anotácií pomocou webového rozhrania API

{
    "new_attribute1": "test attribute 1",
    "new_attribute2": "test attribute 2",
    "new_comments": "test comments",
    "new_recordurl": recordURL,
    "new_feedback_Annotations":
        [
            {
                "notetext": "Screenshot attached",
                "subject": "Attachment",
                "filename": file.name,
                "mimetype": file.type,
                "documentbody": base64str,
            }
        ]
    }

documentbody bude obsahovať prílohu ako reťazec base64.

Aktualizujte a odstraňujte záznamy pomocou webového rozhrania API

Základná aktualizácia

Operácia Metóda Identifikátor URI Ukážka JSON
Základná aktualizácia ZÁPLATA [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001) { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }

Aktualizujte jednu hodnotu vlastnosti

Operácia Spôsob Identifikátor URI Ukážka JSON
Aktualizujte jednu hodnotu vlastnosti PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Odstráňte alebo vymažte hodnotu poľa

Operation Method URI
Odstráňte alebo vymažte hodnotu poľa DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Základné odstránenie

Operácia Spôsob Identifikátor URI
Základné odstránenie DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Priraďovanie a zrušenie priraďovania tabuliek pomocou webového rozhrania API

Pridajte odkaz na navigačnú vlastnosť s hodnotou kolekcie

Operácia Spôsob Identifikátor URI Ukážka JSON
Pridajte odkaz na navigačnú vlastnosť s hodnotou kolekcie Príspevok [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Odstraňovanie odkazu na tabuľku

Operácia Metóda Identifikátor URI
Odstraňovanie odkazu na tabuľku DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Odstráňte odkaz na tabuľku pre vlastnosť navigácie s jednou hodnotou

V prípade navigačnej vlastnosti s jednou hodnotou odstráňte parameter $id reťazca dopytu.

Operácia Metóda Identifikátor URI
Odstráňte odkaz na tabuľku pre vlastnosť navigácie s jednou hodnotou DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Zmeňte referenciu vo vlastnostiach navigácie s jednou hodnotou

Operácia Spôsob Identifikátor URI Ukážka JSON
Zmeňte referenciu vo vlastnostiach navigácie s jednou hodnotou PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Priradenie tabuliek pri vytváraní

Nové tabuľky je možné vytvoriť so vzťahmi pomocou hlbokého vloženia.

Priraďte tabuľky k aktualizácii pomocou vlastnosti navigácie s jednou hodnotou

K aktualizácii môžete priradiť tabuľky pomocou rovnakej správy popísanej v časti Základná aktualizácia skôr v tejto téme, ale musíte použiť anotáciu @odata.bind na nastavenie hodnoty vlastnosti navigácie s jednou hodnotou. Nasledujúci príklad zmení obchodný vzťah spojený s príležitosťou pomocou navigačnej vlastnosti customerid_account s jednou hodnotou.

Priraďte tabuľky k aktualizácii pomocou vlastnosti navigácie s jednou hodnotou

Operácia Metóda Identifikátor URI Ukážka JSON
Priraďte tabuľky k aktualizácii pomocou vlastnosti navigácie s jednou hodnotou PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Ukážky webovej API AJAX

Táto ukážka demonštruje, ako vytvoriť, aktualizovať a odstrániť záznamy tabuľky pomocou asynchrónneho kódu JavaScript a XML (AJAX).

Funkcia Wrapper AJAX

    (function(webapi, $){
        function safeAjax(ajaxOptions) {
            var deferredAjax = $.Deferred();
    
            shell.getTokenDeferred().done(function (token) {
                // add headers for AJAX
                if (!ajaxOptions.headers) {
                    $.extend(ajaxOptions, {
                        headers: {
                            "__RequestVerificationToken": token
                        }
                    }); 
                } else {
                    ajaxOptions.headers["__RequestVerificationToken"] = token;
                }
                $.ajax(ajaxOptions)
                    .done(function(data, textStatus, jqXHR) {
                        validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
                    }).fail(deferredAjax.reject); //AJAX
            }).fail(function () {
                deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args
            });
    
            return deferredAjax.promise();  
        }
        webapi.safeAjax = safeAjax;
    })(window.webapi = window.webapi || {}, jQuery)

Vytvoriť

    webapi.safeAjax({
        type: "POST",
        url: "/_api/accounts",
        contentType: "application/json",
        data: JSON.stringify({
            "name": "Sample Account"
        }),
        success: function (res, status, xhr) {
      //print id of newly created table record
            console.log("entityID: "+ xhr.getResponseHeader("entityid"))
        }
    });

Update

  webapi.safeAjax({
    type: "PATCH",
    url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
    contentType: "application/json",
    data: JSON.stringify({
      "name": "Sample Account - Updated"
    }),
    success: function (res) {
      console.log(res);
    }
  });

Delete

    webapi.safeAjax({
        type: "DELETE",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        success: function (res) {
            console.log(res);
        }
  });

Ďalší krok

Kurz: Použitie webového rozhrania API portálu

Pozrite si tiež

Prehľad webového rozhrania API portálov
Operácie čítania portálov pomocou webového rozhrania API

Poznámka

Môžete nás informovať o svojich voľbách jazyka pre dokumentáciu? Absolvujte krátky prieskum. (upozorňujeme, že tento prieskum je v angličtine)

Prieskum bude trvať približne sedem minút. Nezhromažďujú sa žiadne osobné údaje (vyhlásenie o používaní osobných údajov).