Sdílet prostřednictvím


Použití operací webového rozhraní API portálů pro zápis, aktualizaci a odstranění

Poznámka

S účinností od 12. října 2022 jsou portály Power Apps Power Pages. Další informace: Služba Microsoft Power Pages je nyní obecně dostupná (blog)
Zanedlouho migrujeme a sloučíme dokumentaci k portálům Power Apps s dokumentací k Power Pages.

Můžete provádět dostupné operace webového rozhraní API v portálech. Operace webového rozhraní API se skládají z požadavků HTTP a odpovědí. Tento článek poskytuje ukázkové operace zápisu, aktualizace a odstranění, metody, identifikátor URI a ukázkový kód JSON, které můžete použít v požadavku HTTP.

Důležité

  • Aby tato funkce fungovala, musí být vaše verze portálu 9.3.3.x nebo novější.

Předpoklady

  • Musíte povolit tabulku a pole pro operace webového rozhraní API. Další informace: Nastavení webového rozhraní API v nastavení webu

  • Webové rozhraní API portálů přistupuje k záznamům tabulek a řídí se oprávněními k tabulce udělenými uživatelům prostřednictvím přidružených webových rolí. Ujistěte se, že jste nakonfigurovali správná oprávnění k tabulce. Další informace: Vytvoření webových rolí

Vytvoření záznamu v tabulce

Poznámka

Při odkazu na tabulky Dataverse pomocí rozhraní Web API portálů musíte použít vlastnost EntitySetName, například pro přístup k tabulce account syntaxe kódu použije název EntitySetName accounts.

Základní vytvoření

Operace Metoda Identifikátor URI Ukázka JSON
Základní vytvoření POST [Portal URI]/_api/accounts {"name":"Sample Account"}

Ukázkový kód JSON pro vytváření souvisejících záznamů tabulky v jedné operaci

Jako příklad následuje tělo požadavku odeslané do sady tabulek Obchodní vztah (Account) vytvoří v kontextu vytváření účtu celkem čtyři nové tabulky – včetně obchodního vztahu.

  • Kontakt je vytvořen, protože je definován jako vlastnost objektu vlastnosti navigace s jednou hodnotou primarycontactid.
  • Příležitost je vytvořena, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce opportunity_customer_accounts.
  • Úkol je vytvořen, protože je definována jako objekt v poli, který je nastaven na hodnotu vlastnosti navigace s hodnotou kolekce 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" }
      ]
  }
 ]
}

Přidružení záznamů tabulky při vytvoření

Operation Method Identifikátor URI Ukázka JSON
Přidružení záznamů tabulky při vytvoření POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Ukázkový JSON pro vytváření poznámek pomocí webového rozhraní 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 obsahovat přílohu jako řetězec base64.

Aktualizace a odstranění záznamů pomocí webového rozhraní API

Základní aktualizace

Operace Metoda Identifikátor URI Ukázka JSON
Základní aktualizace PATCH [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 }

Aktualizace jedné hodnoty vlastnosti

Operace Způsob Identifikátor URI Ukázka JSON
Aktualizace jedné hodnoty vlastnosti PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Odstranění nebo vymazání hodnoty pole

Operation Method Identifikátor URI
Odstranění nebo vymazání hodnoty pole DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Základní odstranění

Operace Způsob Identifikátor URI
Základní odstranění DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Přidružení a zrušení přidružení pomocí webového rozhraní API

Přidání odkazu na vlastnost navigace s hodnotou kolekce

Operace Způsob Identifikátor URI Ukázka JSON
Přidání odkazu na vlastnost navigace s hodnotou kolekce POST [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Odebrání odkazu na tabulku

Operace Metoda Identifikátor URI
Odebrání odkazu na tabulku DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou

U vlastnosti navigace s jednou hodnotou odeberte parametr řetězce dotazu $id.

Operace Metoda Identifikátor URI
Odebrání odkazu na tabulku pro navigační vlastnost s jednou hodnotou DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Změna odkazu ve vlastnosti navigace s jednou hodnotou

Operace Způsob Identifikátor URI Ukázka JSON
Změna odkazu ve vlastnosti navigace 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)"}

Přidružení tabulek při vytvoření

Nové tabulky lze vytvořit pomocí vztahů prostřednictvím hlubokého vložení.

Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou

Tabulky můžete přidružit při aktualizaci pomocí stejné zprávy popsané v části Základní aktualizace dříve v tomto tématu, ale musíte použít anotaci @odata.bind pro nastavení hodnoty navigační vlastnosti s jednou hodnotou. Následující příklad změní obchodní vztah přidružený k příležitosti pomocí vlastnosti navigace s jednou hodnotou customerid_account.

Přidružení tabulek při aktualizaci pomocí navigační vlastnosti s jednou hodnotou

Operace Metoda Identifikátor URI Ukázka JSON
Přidružení tabulek při aktualizaci pomocí navigační vlastnosti 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ázky technologií AJAX webového rozhraní API

Tento příklad ukazuje, jak vytvořit, aktualizovat a odstranit záznamy tabulky pomocí asynchronního jazyka JavaScript a XML (AJAX).

Funkce 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)

Vytvoření

    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);
    }
  });

Odstranění

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

Další krok

Kurz: Použití webového rozhraní API portálu

Viz také

Přehled webového rozhraní API portálů
Operace čtení pomocí webového rozhraní API portálů

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).