Portaalide veebi-API-de kirjutamis-, värskendamis- ja kustutamistoimingute kasutamine

Märkus

Alates 12. oktoobrist 2022 on Power Appsi portaalid Power Pages. Lisateave: Microsoft Power Pages on nüüd üldiselt saadaval (ajaveebipostitus)
Peagi migreerime ja ühendame Power Appsi portaalide dokumentatsiooni Power Pagesi dokumentatsiooniga.

Saate portaalides kasutada kättesaadavaid veebi API toiminguid. Veebi-API toimingud koosnevad HTTP-päringutest ja vastustest. Selles artiklis kirjeldatakse kirjutamis-, värskendamis- ja kustutamistoiminguid, meetodeid, URI-sid ja näidis-JSON-i, mida saate kasutada HTTP-päringutes.

Oluline

  • Teie portaali versioon peab olema 9.3.3.x või uuem, et see funktsioon töötaks.

eeltingimused

  • Luba veebi-API toiminguteks tabel ja väli. Lisateave: Veebi-API veebisätted

  • Portaalide veebi-API pääseb juurde tabelikirjetele ja järgib seostatud veebirollide kaudu kasutajatele antud tabeli lubasid. Veenduge, et konfigureeriksite õiged tabeliõigused. Lisateave: Veebirollide loomine

Looge tabelis kirje

Märkus

Portaalide veebi-API-t kasutades Dataverse’i tabelitele viitamisel peate kasutama väärtust EntitySetName. Näiteks konto tabelile juurdepääsuks kasutab koodisüntaks kontode jaoks väärtust EntitySetName.

Lihtne loomine

Toiming Meetod URI JSON-i näidis
Lihtne loomine POSTITUS [Portal URI]/_api/accounts {"name":"Sample Account"}

Näidis JSON seotud toimingute tabelikirjete loomiseks

Näiteks loob järgmine tabelikomplekti Konto postitatud päringu keha kokku neli uut tabelit, sh konto tabeli konto loomise kontekstis.

  • Kontakt luuakse, kuna see on määratletud kui ühe väärtusega navigeerimise objekti atribuudi primarycontactid.
  • Luuakse võimalus, kuna see on määratletud objektina, mille väärtuseks on seatud kogu väärtusega navigeerimise atribuudi opportunity_customer_accounts.
  • Luuakse võimalus, kuna see on määratletud objektina, mille väärtuseks on seatud kogu väärtusega navigeerimise atribuudi 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" }
      ]
  }
 ]
}

Seostage tabeli kirjed loomisel

Toiming Meetod URI JSON-i näidis
Seostage tabeli kirjed loomisel POST [Portal URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

JSON-i näide märkme loomiseks veebi-API kaudu

{
    "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 sisaldab manust Base64-stringina.

Kirjete värskendamine ja kustutamine veebi API abil

Lihtne värskendus

Toiming Meetod URI JSON-i näidis
Lihtne värskendus 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 }

Ühe atribuudi väärtuse värskendamine

Toiming Meetod URI JSON-i näidis
Ühe atribuudi väärtuse värskendamine PUT [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Väljaväärtuse kustutamine või tühjendamine

Toiming Meetod URI
Väljaväärtuse kustutamine või tühjendamine DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Lihtne kustutamine

Toiming Meetod URI
Lihtne kustutamine Kustutusklahv (DELETE) [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

Seostage ja eraldage tabeleid veebiliidese abil

Viite lisamine kogumiväärtusega navigeerimisatribuudile

Toiming Meetod URI JSON-i näidis
Viite lisamine kogumiväärtusega navigeerimisatribuudile POSTITA [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Eemaldage tabeli viide

Toiming Meetod URI
Eemaldage tabeli viide DELETE [Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Eemaldage viide üheväärtusliku navigeerimisomandi tabelile

Ühe väärtusega navigeerimisatribuudi puhul $id päringustringi parameetri eemaldamine.

Toiming Meetod URI
Eemaldage viide üheväärtusliku navigeerimisomandi tabelile DELETE [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Ühe väärtusega navigeerimisatribuudis viite muutmine

Toiming Meetod URI JSON-i näidis
Ühe väärtusega navigeerimisatribuudis viite muutmine PUT [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Seostage tabelid loomisel

Uute tabelite loomiseks võib kasutada seoseid, kasutades sügavat sisestust.

Seostage värskenduse tabelid, kasutades üheväärtuslikku navigeerimisomadust

Võite seostada tabeleid värskendamisel, kasutades sama teemat varem Peamine värskendus kirjeldatud sõnumit, kuid väärtustatud navigeerimisatribuudi ühe väärtuse määramiseks peate kasutama märkust @odata.bind. Järgmises näites muudetakse võimalusega seotud kontot, kasutades ühekordse-väärtusega navigeerimise atribuuti customerid_account.

Seostage värskenduse tabelid, kasutades üheväärtuslikku navigeerimisomadust

Toiming Meetod URI JSON-i näidis
Seostage värskenduse tabelid, kasutades üheväärtuslikku navigeerimisomadust PATCH [Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Veebi-API AJAXi näidised

See näidis näitab, kuidas luua, värskendada ja kustutada tabelikirjeid asünkroonse JavaScripti ja XML-i (AJAX) abil.

AJAX-i ümbrise funktsioon

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

Koosta

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

Värskendus

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

Kustutusklahv (Delete)

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

Järgmine etapp

Õpetus: Portaali veebi-API kasutamine

Vt ka

Portaalide veebi API ülevaade
Portaalide lugemistoimingud, mis kasutavad veebi-API-d

Märkus

Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)

Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).